iis服务器助手广告
返回顶部
首页 > 资讯 > 移动开发 >Android如何使用Bmob后端云实现失物招领功能
  • 955
分享到

Android如何使用Bmob后端云实现失物招领功能

2024-04-02 19:04:59 955人浏览 安东尼
摘要

目录一、创建账号二、网站后台创建应用(如图)三、AndroidStudio SDK导入信息配置四、应用中使用详情1、启动页:2、由登录界面进入注册页面,进行账户注册:3、注册成功后回

最近在使用后端云Bmob对数据进行存储,目的是在不搭建服务器的前提下,能对Android应用的数据进行操作处理,其实这篇是比较久之前写的了,有些童鞋反馈说现在的源码会有问题,所以我又重新运行了一下,随着Bmob版本的更新,之前的源码跑不起来,现在重新更新了最新版本做了个Demo.

实现步骤:

一、创建账号

需要的自己去注册,后端云Bmob首页地址:https://www.bmob.cn/

二、网站后台创建应用(如图)

这里使用的是免费版的

创建成功之后点击创建的应用进去,在设置->应用秘钥中可以找到应用秘钥

三、AndroidStudio SDK导入信息配置

详细参考: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:

1、启动页:

初始化BmobSDK:


//第一:默认初始化
Bmob.initialize(this,"Your Application ID");

2、由登录界面进入注册页面,进行账户注册:

输入账号密码后点击注册按钮:


  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后台有信心记录:

3、注册成功后回到登录界面

输入账号密码后点击登录按钮:


  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、登录成功后进入主界面,右上方按钮进入失物招领的信息发布界面

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、发布信息:


  
  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、添加数据成功后,在后台会有插入的数据:

5、主界面的信息需要读取后台用户插入的数据:

数据的查询:


  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、长按RecyclerView每条Item进行编辑与删除操作:

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、编辑操作即对数据进行修改


  
  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();
        }
      }
    });
  }

7、使用PopupWindow长按弹出框


  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();
      }
    });
  }

8、总结

8-1、实现登录、注册的过程:

使用Bmob提供专门的用户类——BmobUser来自动处理用户账户管理所需的功能。有了这个类,你就可以在你的应用程序中添加用户账户功能。BmobUser是BmobObject的一个子类,它继承了BmobObject所有的方法,具有BmobObject相同的功能。不同的是,BmobUser增加了一些特定的关于用户账户管理相关的功能。

8-2、失物招领:

这个过程中,我们对数据进行了添加、查询、删除以及更新操作,当然后端云Bmob还不止提供了这些API,还有很多API还需要掌握。

BmobDemo源码:
链接:https://pan.baidu.com/s/1wTcWWEitQt65MDtr3PSvhQ
提取码:emue

以上就是Android如何使用Bmob后端云实现失物招领功能的详细内容,更多关于Android 实现失物招领功能的资料请关注编程网其它相关文章!

--结束END--

本文标题: Android如何使用Bmob后端云实现失物招领功能

本文链接: https://www.lsjlt.com/news/122306.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Android如何使用Bmob后端云实现失物招领功能
    目录一、创建账号二、网站后台创建应用(如图)三、AndroidStudio SDK导入信息配置四、应用中使用详情1、启动页:2、由登录界面进入注册页面,进行账户注册:3、注册成功后回...
    99+
    2024-04-02
  • Android怎么使用Bmob后端云实现失物招领功能
    这篇文章主要介绍Android怎么使用Bmob后端云实现失物招领功能,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、创建账号需要的自己去注册,后端云Bmob首页地址:https://www.bmob.cn/二、网站...
    99+
    2023-06-14
  • 基于Java+SpringMVC+vue+element实现前后端分离校园失物招领系统详细设计
     博主介绍:✌公司项目主程、全网粉丝10W+,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,CSDN博客之星TOP100、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业设计✌ ...
    99+
    2023-09-29
    校园失物招领系统 java毕业设计 javaSpringBoot VUE MYSQL数据库
  • Android中如何使用RecyclerView实现简单购物车功能
    这篇文章给大家分享的是有关Android中如何使用RecyclerView实现简单购物车功能的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。具体内容如下我们知道在ListView中用setTag来解决Item的复用...
    99+
    2023-06-29
  • jquery如何实现两秒后消失功能
    这篇文章主要介绍“jquery如何实现两秒后消失功能”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“jquery如何实现两秒后消失功能”文章能帮助大家解决问题。首先,让我们来简单了解一下jquery,...
    99+
    2023-07-05
  • 如何使用PHP实现物流跟踪功能?
    随着电商行业的发展,物流行业也逐渐成为电商行业的重要组成部分。随着电商订单量的增加,物流业务也需要快速跟进,以提供更好的服务。而物流跟踪功能,恰恰是提高物流服务效率、优化客户体验的重要手段之一。在电商物流领域,每一个订单产生的物流信息都是随...
    99+
    2023-05-14
    PHP 实现 物流跟踪
  • 如何使用jQuery实现购物车结算功能
    这篇文章主要介绍如何使用jQuery实现购物车结算功能,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!具体内容如下<!DOCTYPE html> <html...
    99+
    2024-04-02
  • 如何用php实现购物车功能
    本篇内容主要讲解“如何用php实现购物车功能”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何用php实现购物车功能”吧!一、购物车功能的基本实现原理购物车是一个存储商品信息的容器,用户通过往购...
    99+
    2023-07-05
  • 如何使用session实现简易购物车功能
    这篇文章主要介绍“如何使用session实现简易购物车功能”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“如何使用session实现简易购物车功能”文章能帮助大家解决问题。整体思路:先写一个JSP用于...
    99+
    2023-06-29
  • 如何使用Android实现地理定位功能
    这篇文章给大家分享的是有关如何使用Android实现地理定位功能的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。首先需要的权限有<uses-permission android:name="...
    99+
    2023-05-30
    android
  • Android如何使用DecorView实现对话框功能
    这篇文章主要讲解了Android如何使用DecorView实现对话框功能,内容清晰明了,对此有兴趣的小伙伴可以学习一下,相信大家阅读完之后会有帮助。如果还不知道DecorView,那也没有什么关系 ^_^先来看看实现的效果实现的大致思路首先...
    99+
    2023-05-31
    android decorview roi
  • 如何使用Go语言和Redis实现购物车功能
    如何使用Go语言和Redis实现购物车功能购物车是电商网站必备的功能之一,它允许用户将他们感兴趣的商品添加到购物车中,然后可以随时查看、编辑和结算购物车中的商品。在本文中,我们将以Go语言为例,结合Redis数据库,实现购物车功能。环境准备...
    99+
    2023-10-27
    Go语言 redis 购物车功能
  • 如何使用纯jQuery实现前端分页功能
    这篇文章给大家分享的是有关如何使用纯jQuery实现前端分页功能的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。效果展示:因为核心代码主要在前端jquery,为了简便,后台就用se...
    99+
    2024-04-02
  • Android使用OKhttp3实现登录注册功能+springboot搭建后端的详细过程
    目录一、Android前端实现二、数据库三、SpringBoot后端搭建四、部署至服务器五、运行测试一、Android前端实现 新建一个login的项目,主要的几个文件在这里 1、...
    99+
    2024-04-02
  • 如何用php+mysql实现一个购物车功能
    本篇内容介绍了“如何用php+mysql实现一个购物车功能”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、购物车功能概述购物车是一个在线商...
    99+
    2023-07-05
  • 如何利用Redis和JavaScript实现购物车功能
    如何利用Redis和JavaScript实现购物车功能购物车是电商网站中非常常见的功能之一,它允许用户将感兴趣的商品添加到购物车中,方便用户随时查看和管理购买的商品。在本文中,我们将介绍如何利用Redis和JavaScript实现购物车功能...
    99+
    2023-10-22
    redis JavaScript 购物车
  • Android开发中如何使用touch实现移动端的下拉刷新功能
    今天就跟大家聊聊有关Android开发中如何使用touch实现移动端的下拉刷新功能,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。第一部分:四个touch事件  1.touchstar...
    99+
    2023-05-31
    touch roi android
  • Android端如何实现单点登录“被挤下线”功能
    这篇文章主要为大家展示了“Android端如何实现单点登录“被挤下线”功能”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Android端如何实现单点登录“被挤下线”功能”这篇文章吧。单点登录(被...
    99+
    2023-05-30
    android
  • 如何使用Android原生态实现分享转发功能
    这篇文章主要介绍了如何使用Android原生态实现分享转发功能,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。导读:之前刚学安卓时,写过一篇“Android调用系统shareA...
    99+
    2023-06-22
  • 如何android在中使用springMvc实现图片上传功能
    本篇文章为大家展示了如何android在中使用springMvc实现图片上传功能,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。具体内容如下Android端:String fileName = tvF...
    99+
    2023-05-31
    android roi springmvc
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作