欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

第三方服务之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网络存储的使用(真的很简单)

  1. 首先注册
    www.bmob.cn,在这个网站注册,注册很简单,不用拍身份证照片之类的。

  2. 创建应用获得Application ID
    创建应用也很简单,不用填什么,然后点击开发版字样,再点击应用**就可以看到了
    第三方服务之Bmob——快速入门

  3. 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——快速入门

真的很简单是不是,而且Bmob还有其他的高级用法,在一开始说的文档里有说明,可以自己去深入研究,这里也就做个推荐。

相关标签: Bmob