您好,登錄后才能下訂單哦!
這篇文章主要介紹Android怎么使用Bmob后端云實現失物招領功能,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
需要的自己去注冊,后端云Bmob首頁地址:https://www.bmob.cn/
這里使用的是免費版的
創建成功之后點擊創建的應用進去,在設置->應用秘鑰中可以找到應用秘鑰
詳細參考:http://doc.bmob.cn/data/android/index.html
1、在 Project 的 build.gradle 文件中添加 Bmob的maven倉庫地址:
buildscript { repositories { google() jcenter() } dependencies { classpath 'com.android.tools.build:gradle:3.6.1' } } allprojects { repositories { google() jcenter() //Bmob的maven倉庫地址--必填 maven { url "https://raw.github.com/bmob/bmob-android-sdk/master" } } } task clean(type: Delete) { delete rootProject.buildDir }
2、在app的build.gradle文件中添加compile依賴文件:
android { compileSdkVersion 30 buildToolsVersion "30.0.3" **兼容Android6.0系統所需,如果這句話報錯,可在dependencies標簽下使用compile 'cn.bmob.android:http-legacy:1.0'** useLibrary 'org.apache.http.legacy' ... }
dependencies { //以下SDK開發者請根據需要自行選擇 //bmob-sdk:Bmob的android sdk包,包含了Bmob的數據存儲、文件等服務,以下是最新的bmob-sdk: //3.5.5:請務必查看下面注釋[1] implementation 'cn.bmob.android:bmob-sdk:3.5.5' //bmob-push:Bmob的推送包 implementation 'cn.bmob.android:bmob-push:0.8' //bmob-im:Bmob的即時通訊包,注意每個版本的im依賴特定版本的bmob-sdk,具體的依賴關系可查看下面注釋[2] implementation 'cn.bmob.android:bmob-im:2.0.5@aar' implementation 'cn.bmob.android:bmob-sdk:3.4.7-aar' //bmob-sms :Bmob單獨為短信服務提供的包 implementation 'cn.bmob.android:bmob-sms:1.0.1' //如果你想應用能夠兼容Android6.0,請添加此依賴(org.apache.http.legacy.jar) implementation 'cn.bmob.android:http-legacy:1.0' }
3、在你的應用程序的AndroidManifest.xml文件中添加相應的權限:
<uses-permission android:name="android.permission.INTERNET" /> <!--獲取GSM(2g)、WCDMA(聯通3g)等網絡狀態的信息 --> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <!--獲取wifi網絡狀態的信息 --> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <!--保持CPU 運轉,屏幕和鍵盤燈有可能是關閉的,用于文件上傳和下載 --> <uses-permission android:name="android.permission.WAKE_LOCK" /> <!--獲取sd卡寫的權限,用于文件上傳和下載--> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <!--允許讀取手機狀態 用于創建BmobInstallation--> <uses-permission android:name="android.permission.READ_PHONE_STATE" />
這里演示部分的API:
初始化BmobSDK:
//第一:默認初始化 Bmob.initialize(this,"Your Application ID");
輸入賬號密碼后點擊注冊按鈕:
private void bmobRegisterAccount() { final String registerName = accountRegisterName.getText().toString().trim();//賬號 final String registerPassword = accountRegisterPassword.getText().toString().trim();//密碼 if (TextUtils.isEmpty(registerName) || TextUtils.isEmpty(registerPassword)) { showToast("注冊賬號或密碼為空"); return; } BmobUser bmobUser = new BmobUser(); bmobUser.setUsername(registerName); bmobUser.setPassword(registerPassword); bmobUser.signUp(new SaveListener<BmobUser>() { @Override public void done(BmobUser bmobUser, BmobException e) { if (e == null) { showToast("恭喜,注冊賬號成功"); finish(); } else { showToast("register fail:" + e.getMessage()); } } }); }
注冊成功后在后端云Bmob后臺有信心記錄:
輸入賬號密碼后點擊登錄按鈕:
private void bmobUserAccountLogin() { final String accountName = accountLoginName.getText().toString().trim();//賬號 final String accountPassword = accountLoginPassword.getText().toString().trim();//密碼 if (TextUtils.isEmpty(accountName)) { showToast("賬號不能為空"); return; } if (TextUtils.isEmpty(accountPassword)) { showToast("密碼不能為空"); return; } //登錄過程 showProgressBar(); new Handler().postDelayed(new Runnable() { @Override public void run() { //BmobUser類為Bmob后端云提供類 BmobUser bmobUser = new BmobUser(); bmobUser.setUsername(accountName); bmobUser.setPassword(accountPassword); bmobUser.login(new SaveListener<BmobUser>() { @Override public void done(BmobUser bmobUser, BmobException e) { if (e == null) { //登錄成功后進入主界面 Intent intent = new Intent(LoginActivity.this, LostAndFoundActivity.class); startActivity(intent); finish(); } else { showToast("" + e.getMessage()); hiddenProgressBar();//隱藏 } } }); } }, 3000); }
4-1、信息完成后,點擊右上角點擊發布按鈕,此時需要添加數據:
先創建bean類,繼承BmobObject類
public class LostInfomationReq extends BmobObject{ private String title; //標題 private String phoneNum;//手機號碼 private String desc;//描述 public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public String getPhoneNum() { return phoneNum; } public void setPhoneNum(String phoneNum) { this.phoneNum = phoneNum; } public String getDesc() { return desc; } public void setDesc(String desc) { this.desc = desc; } }
4-2、發布信息:
/** * @param titleName 標題 * @param num 電話號碼 * @param descridle 描述 */ private void publishLostInfo(String titleName, String num, String descridle) { LostInfomationReq lostInfomationReq = new LostInfomationReq(); lostInfomationReq.setTitle(titleName);//titleName為用戶輸入的標題 lostInfomationReq.setPhoneNum(num);//num為用戶輸入的號碼 lostInfomationReq.setDesc(descridle);//descridle為信息描述 lostInfomationReq.save(new SaveListener<String>() { @Override public void done(String s, BmobException e) { if (e == null) { showToast("招領信息發布成功"); //成功后提示主界面刷新數據 Intent intent = new Intent(); setResult(RESULT_OK, intent); //成功后將頁面銷毀 finish(); } else { showToast("信息發布失敗"); } } }); }
4-3、添加數據成功后,在后臺會有插入的數據:
數據的查詢:
private void initData() { BmobQuery<LostInfomationReq> lostInfomationReqBmobQuery = new BmobQuery<>(); lostInfomationReqBmobQuery.order("-updatedAt");//排序 lostInfomationReqBmobQuery.findObjects(new FindListener<LostInfomationReq>() { @Override public void done(List<LostInfomationReq> list, BmobException e) { if (e == null) { lostInfomationReqList = list; lostAndFoundAdapter.setData(list); recyclerView.setAdapter(lostAndFoundAdapter); } else { showToast("查詢數據失敗"); } } }); }
6-1、刪除操作即是將后臺中的將選中的信息刪除
private void deleteItemData(final int position) { if (lostInfomationReqList.size() != 0) { LostInfomationReq lostInfomationReq = new LostInfomationReq(); lostInfomationReq.setObjectId(lostInfomationReqList.get(position).getObjectId()); lostInfomationReq.delete(new UpdateListener() { @Override public void done(BmobException e) { if (e == null) { lostInfomationReqList.remove(position); lostAndFoundAdapter.setData(lostInfomationReqList); lostAndFoundAdapter.notifyDataSetChanged(); } else { showToast("刪除數據失敗"); } } }); } }
6-2、編輯操作即對數據進行修改
/** * @param titleName 標題 * @param num 電話號碼 * @param descridle 描述 */ private void updataInfo(String titleName, String num, String descridle) { LostInfomationReq lostInfomationReq = new LostInfomationReq(); lostInfomationReq.setTitle(titleName);//titleName為用戶輸入的標題 lostInfomationReq.setPhoneNum(num);//num為用戶輸入的號碼 lostInfomationReq.setDesc(descridle);//descridle為信息描述 lostInfomationReq.update(infomationReq.getObjectId(), new UpdateListener() { @Override public void done(BmobException e) { if (e == null) { showToast("更新信息成功"); //更新數據后提示主界面進行數據刷新 Intent intent = new Intent(); setResult(RESULT_OK, intent); finish(); } } }); }
private void showWindow(LostAndFoundHolder holder, final int pos) { //加載布局文件 View contentview = LayoutInflater.from(mContext).inflate(R.layout.pop_window_view,null); final PopupWindow popupWindow = new PopupWindow(contentview, LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT); //設置焦點 popupWindow.setFocusable(true); //觸摸框外 popupWindow.setOutsideTouchable(true); //點擊空白處的時候讓PopupWindow消失 popupWindow.setBackgroundDrawable(new ColorDrawable(0x00000000)); //設置偏移量 popupWindow.showAsDropDown(holder.time, 300, -100); //showAsDropDown(View anchor):相對某個控件的位置(正左下方),無偏移 // showAsDropDown(View anchor, int xoff, int yoff):相對某個控件的位置,有偏移 //showAtLocation(View parent, int gravity, int x, int y):相對于父控件的位置(例如正中央Gravity.CENTER,下方Gravity.BOTTOM等),可以設置偏移或無偏移 //點擊編輯按鈕 contentview.findViewById(R.id.edit_btn).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //回調給主界面,進行數據操作 mItemClickListener.onEditOrDeleteClick(pos, EDIT_CODE); //銷毀彈出框 popupWindow.dismiss(); } }); //點擊刪除按鈕 contentview.findViewById(R.id.delete_btn).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //回調給主界面,進行數據操作 mItemClickListener.onEditOrDeleteClick(pos, DELETE_CODE); //銷毀彈出框 popupWindow.dismiss(); } }); }
以上是“Android怎么使用Bmob后端云實現失物招領功能”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。