Bmob后端云的集成与使用

android 专栏收录该内容
64 篇文章 1 订阅

前言

bmob是一个后端云服务平台,通过它,Bmob可以为你提供实时数据与文件存储功能,轻松实现应用“云与端”的数据连通。数据存储除了常规应用文本信息的存储,还可以存储图片、视频、音频、地理位置等信息。除了这些,还可以做消息推送,短信验证,支付(可以自己集成,不需要企业账号),即时通讯等功能。如果我们不会服务器相关技术,我们可以直接使用bmob,再也不用担心后端的问题。地址bmob

通过简单的学习,总结下里面的数据存储功能和消息推送功能吧。

数据服务

1 . 在 Project 的 build.gradle 文件中添加 Bmob的maven仓库地址

 repositories {
     jcenter()
     //Bmob的maven仓库地址--必填
     maven { url "https://raw.github.com/bmob/bmob-android-sdk/master" }
 }

2 .由于我使用的是AS, 直接添加相关依赖就可以了

compile 'cn.bmob.android:bmob-sdk:3.5.0'

3 .配置AndroidManifest.xml

    <uses-permission android:name="android.permission.INTERNET" /> 
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> 
    <uses-permission android:name="android.permission.WAKE_LOCK" /> 
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />

4 .初始化BmobSDK

//提供以下两种方式进行初始化操作:

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

        //第二:自v3.4.7版本开始,设置BmobConfig,允许设置请求超时时间、文件分片上传时每片的大小、文件的过期时间(单位为秒),
        //BmobConfig config =new BmobConfig.Builder(this)
        ////设置appkey
        //.setApplicationId("Your Application ID")
        ////请求超时时间(单位为秒):默认15s
        //.setConnectTimeout(30)
        ////文件分片上传时每片的大小(单位字节),默认512*1024
        //.setUploadBlockSize(1024*1024)
        ////文件的过期时间(单位为秒):默认1800s
        //.setFileExpiration(2500)
        //.build();
        //Bmob.initialize(config);

我使用的是第一种

5 .创建JavaBean(对应为Bmob后台的数据表)

public class Person extends BmobObject {
    private String name;
    private String address;

    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getAddress() {
        return address;
    }
    public void setAddress(String address) {
        this.address = address;
    }
}

6 .添加一行数据

Person p2 = new Person();
p2.setName("lucky");
p2.setAddress("北京海淀");
p2.save(new SaveListener<String>() {
    @Override
    public void done(String objectId,BmobException e) {
        if(e==null){
            toast("添加数据成功,返回objectId为:"+objectId);
        }else{
            toast("创建数据失败:" + e.getMessage());
        }
    }
});

查看后台生成的表如图

这里写图片描述

第一个为系统自带的,第二个为刚才Person bean生成的Person表

7 .获取一行数据

//查找Person表里面id为6b6c11c537的数据
BmobQuery<Person> bmobQuery = new BmobQuery<Person>();
bmobQuery.getObject("6b6c11c537", new >QueryListener<Person>() {
    @Override
    public void done(Person object,BmobException e) {
        if(e==null){
            toast("查询成功");
        }else{
            toast("查询失败:" + e.getMessage());
        }
    }
});

8 .修改一行数据

//更新Person表里面id为6b6c11c537的数据,address内容更新为“北京朝阳”
Person p2 = new Person();
p2.setAddress("北京朝阳");
p2.update("6b6c11c537", new UpdateListener() {

    @Override
    public void done(BmobException e) {
        if(e==null){
            toast("更新成功:"+p2.getUpdatedAt());
        }else{
            toast("更新失败:" + e.getMessage());
        }
    }

});

9 .删除一行数据

Person p2 = new Person();
p2.setObjectId("6b6c11c537");
p2.delete(new UpdateListener() {

    @Override
    public void done(BmobException e) {
        if(e==null){
            toast("删除成功:"+p2.getUpdatedAt());
        }else{
            toast("删除失败:" + e.getMessage());
        }
    }

});

这是基本使用,详细可以参看文档
快速入门
开发详细文档

推送服务

1 . jar包下载地址

下载之后将jar包添加到AS的lib中

2 .添加推送权限

  <!--推送所需的权限-->
    <uses-permission android:name="android.permission.RECEIVE_USER_PRESENT" />
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />

3 .在应用程序AndroidManifest.xml文件中注册BmobPush SDK运行所需的推送服务和消息接收器

        <service
            android:label="PushService"
            android:name="cn.bmob.push.lib.service.PushService"
            android:process=":bmobpush"
            android:exported="true">
            <intent-filter>
                <action android:name="cn.bmob.push.lib.service.PushService"/>
            </intent-filter>
        </service>

        <!-- 用于进程保活 -->
        <service
            android:name="cn.bmob.push.lib.service.PushNotifyService"
            android:process=":bmobpush" >
        </service>

        <receiver android:name="cn.bmob.push.PushReceiver" >
            <intent-filter>
                <!-- 系统启动完成后会调用 -->
                <action android:name="android.intent.action.BOOT_COMPLETED" />
                <!-- 解锁完成后会调用 -->
                <action android:name="android.intent.action.USER_PRESENT" />
                <!-- 监听网络连通性 -->
                <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
            </intent-filter>
        </receiver>

        <!-- 第四部中创建的消息接收器,在这里进行注册 -->
        <receiver android:name=".broadcast.MyPushMessageReceiver">
            <intent-filter >
                <action android:name="cn.bmob.push.action.MESSAGE"/>
            </intent-filter>
        </receiver>

        <!-- 接收心跳和唤醒的广播,要和PushService运行在同个进程 -->
        <receiver
            android:name="cn.bmob.push.PushNotifyReceiver"
            android:process=":bmobpush" >
            <intent-filter>
                <!-- 接收心跳广播的action -->
                <action android:name="cn.bmob.push.action.HEARTBEAT" />
                <!-- 接收唤醒广播的action -->
                <action android:name="cn.bmob.push.action.NOTIFY" />
            </intent-filter>
        </receiver>

MyPushMessageReceiver代码如下

public class MyPushMessageReceiver extends BroadcastReceiver{

    @Override
    public void onReceive(Context context, Intent intent) {
        // TODO Auto-generated method stub
        if(intent.getAction().equals(PushConstants.ACTION_MESSAGE)){
            Log.d("bmob", "客户端收到推送内容:"+intent.getStringExtra("msg"));
        }
    }

}

Push消息通过action=cn.bmob.push.action.MESSAGE的Intent把数据发送给客户端your.package.MyPushMessageReceiver,消息格式由应用自己决定,PushService只负责把服务器下发的消息以字符串格式透传给客户端。

4 .启动推送服务

// 使用推送服务时的初始化操作
    BmobInstallation.getCurrentInstallation(this).save();
    // 启动推送服务
    BmobPush.startWork(this);

5 .在web端进行推送设置

在应用面板–>消息推送–>推送设置界面中填写包名进行保存。

这里写图片描述

6 .在web端推送消息

完成以上步骤后,你可以运行应用程序,从web推送一条消息给客户端。

这里写图片描述

7 .客户端接受到的消息

这里写图片描述

至此,消息推送已经完成

最后

这是bmob的简单使用,详细使用可以下载官方Demo学习使用。

  • 7
    点赞
  • 1
    评论
  • 5
    收藏
  • 打赏
    打赏
  • 扫一扫,分享海报

©️2022 CSDN 皮肤主题:技术工厂 设计师:CSDN官方博客 返回首页

打赏作者

narkang

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值