第三方服务之Bmob——快速入门
程序员文章站
2024-03-24 13:16:34
...
https://docs.bmob.cn/data/Android/a_faststart/doc/index.html
先上一个文档地址https://docs.bmob.cn/data/Android/a_faststart/doc/index.html#%E6%B3%A8%E5%86%8CBmob%E5%B8%90%E5%8F%B7
这个网站基本上可以说吧Bmob的使用完全说明白了,我这里就给大家总结一下Bmob网络存储的使用(真的很简单)
首先注册
www.bmob.cn,在这个网站注册,注册很简单,不用拍身份证照片之类的。创建应用获得Application ID
创建应用也很简单,不用填什么,然后点击开发版字样,再点击应用**就可以看到了SDK导入
在project的build.gradle里添加
allprojects {
repositories {
jcenter()
//Bmob的maven仓库地址--必填
maven { url "https://raw.github.com/bmob/bmob-android-sdk/master" }
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
在module的build.gradle里添加
android {
compileSdkVersion 22
buildToolsVersion '22.0.1'
**兼容Android6.0系统所需,如果这句话报错,可在dependencies标签下使用compile 'cn.bmob.android:http-legacy:1.0'**
useLibrary 'org.apache.http.legacy'
...
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
还有
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
//以下SDK开发者请根据需要自行选择
//bmob-sdk:Bmob的android sdk包,包含了Bmob的数据存储、文件等服务,以下是最新的bmob-sdk:
//3.5.5:请务必查看下面注释[1]
compile 'cn.bmob.android:bmob-sdk:3.5.5'
//bmob-push:Bmob的推送包
compile 'cn.bmob.android:bmob-push:0.8'
//bmob-im:Bmob的即时通讯包,注意每个版本的im依赖特定版本的bmob-sdk,具体的依赖关系可查看下面注释[2]
compile 'cn.bmob.android:bmob-im:aaa@qq.com'
compile 'cn.bmob.android:bmob-sdk:3.4.7-aar'
//bmob-sms :Bmob单独为短信服务提供的包
compile 'cn.bmob.android:bmob-sms:1.0.1'
//如果你想应用能够兼容Android6.0,请添加此依赖(org.apache.http.legacy.jar)
compile 'cn.bmob.android:http-legacy:1.0'
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
4 添加权限
<!--允许联网 -->
<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" />
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
添加:
android:usesCleartextTraffic="true"
5 . 初始化BmobSDK
这个放在Application类里去添加
//第二:自v3.4.7版本开始,设置BmobConfig,允许设置请求超时时间、文件分片上传时每片的大小、文件的过期时间(单位为秒),
BmobConfig config =new BmobConfig.Builder(this)
////设置appkey
.setApplicationId("55635d865b1609c2afce397d6617b6b8")
////请求超时时间(单位为秒):默认15s
.setConnectTimeout(15)
////文件分片上传时每片的大小(单位字节),默认512*1024
//.setUploadBlockSize(1024*1024)
////文件的过期时间(单位为秒):默认1800s
//.setFileExpiration(2500)
.build();
Bmob.initialize(config);
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
6 . 增删改查网络数据,并在Bmob的网站的后台查看数据
package zzw.bmobtest;
import cn.bmob.v3.BmobObject;
/**
* Created by ZTH on 17/10/19.
*/
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;
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
package zzw.bmobtest;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.OnClick;
import cn.bmob.v3.BmobQuery;
import cn.bmob.v3.exception.BmobException;
import cn.bmob.v3.listener.QueryListener;
import cn.bmob.v3.listener.SaveListener;
import cn.bmob.v3.listener.UpdateListener;
public class MainActivity extends AppCompatActivity
{
@BindView(R.id.add_btn)
Button addBtn;
@BindView(R.id.get_btn)
Button getBtn;
@BindView(R.id.post_btn)
Button postBtn;
@BindView(R.id.delete_btn)
Button deleteBtn;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ButterKnife.bind(this);
Log.v("zzwtest", "click");
}
public void add()
{
Log.v("zzwtest", "click");
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)
{
ToastUtil.showToast("添加数据成功,返回objectId为:" + objectId);
}
else
{
ToastUtil.showToast("创建数据失败:" + e.getMessage());
}
}
});
}
public void get()
{
//查找Person表里面id为6b6c11c537的数据
BmobQuery<Person> bmobQuery = new BmobQuery<Person>();
bmobQuery.getObject("165baad5c1", new QueryListener<Person>() {
@Override
public void done(Person object,BmobException e) {
if(e==null){
ToastUtil.showToast("查询成功");
}else{
ToastUtil.showToast("查询失败:" + e.getMessage());
}
}
});
}
public void post()
{
//更新Person表里面id为6b6c11c537的数据,address内容更新为“北京朝阳”
final Person p2 = new Person();
p2.setAddress("北京朝阳");
p2.update("165baad5c1", new UpdateListener() {
@Override
public void done(BmobException e) {
if(e==null){
ToastUtil.showToast("更新成功:"+p2.getUpdatedAt());
}else{
ToastUtil.showToast("更新失败:" + e.getMessage());
}
}
});
}
public void delete()
{
final Person p2 = new Person();
p2.setObjectId("7ee2660250");
p2.delete(new UpdateListener() {
@Override
public void done(BmobException e) {
if(e==null){
ToastUtil.showToast("删除成功:"+p2.getUpdatedAt());
}else{
ToastUtil.showToast("删除失败:" + e.getMessage());
}
}
});
}
@OnClick({R.id.add_btn, R.id.get_btn, R.id.post_btn, R.id.delete_btn})
public void onViewClicked(View view)
{
switch (view.getId())
{
case R.id.add_btn:
add();
break;
case R.id.get_btn:
get();
break;
case R.id.post_btn:
post();
break;
case R.id.delete_btn:
delete();
break;
}
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
- 100
- 101
- 102
- 103
- 104
- 105
- 106
- 107
- 108
- 109
- 110
- 111
- 112
- 113
- 114
- 115
- 116
- 117
- 118
- 119
- 120
- 121
- 122
- 123
- 124
- 125
- 126
- 127
- 128
- 129
- 130
- 131
- 132
- 133
- 134
- 135
- 136
- 137
- 138
- 139
- 140
- 141
- 142
- 143
里面的objectId很重要,是唯一标识符,我们应该本地建立数据库去保存它,然后在Bmob的后台去查看数据
真的很简单是不是,而且Bmob还有其他的高级用法,在一开始说的文档里有说明,可以自己去深入研究,这里也就做个推荐。
上一篇: Unity联网对战游戏小Demo
下一篇: 网上挂号V1.0之开始挂号