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() {
@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 bmobQuery = new BmobQuery();
bmobQuery.getObject("6b6c11c537", new >QueryListener() {
@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>
<receiver
android:name="cn.bmob.push.PushNotifyReceiver"
android:process=":bmobpush" >
<intent-filter>
<action android:name="cn.bmob.push.action.HEARTBEAT" />
<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学习使用。