Android Bmob--免费的网络存储的使用
来源:互联网 发布:淘宝首页宝贝展示框架 编辑:程序博客网 时间:2024/06/08 11:16
免费的网络存储,简单的操作代码,便利的后台使用。
我这里热烈推荐Bmob
我先上一个文档地址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" } } }
在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' ...}
还有
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:2.0.5@aar' 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' }
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" />
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);
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; }}
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; } }}
里面的objectId很重要,是唯一标识符,我们应该本地建立数据库去保存它,然后在Bmob的后台去查看数据
真的很简单是不是,而且Bmob还有其他的高级用法,在一开始说的文档里有说明,可以自己去深入研究,这里也就做个推荐。
阅读全文
0 0
- Android Bmob--免费的网络存储的使用
- android服务器Bmob的使用
- Android 云平台之Bmob的使用
- Bmob的初步使用
- Bmob的使用案例
- Bmob的简单使用
- Bmob的基本使用
- Bmob的使用iOS版
- Bmob后端云的使用
- android studio使用Bmob来实现登录注册的功能
- android studio使用Bmob来实现登录注册的功能
- 免费无限制的公有云服务Bmob之一
- Android-Bmob云存储数据
- Android - Bmob 读取存储数据
- 基于Bmob的Android即时通讯应用源码
- Android 针对个人开发者的bmob支付
- Android Bmob 云的基本配置详解
- 使用Bmob后台的两个错误
- jdk自带线程池详解
- eclipes 集成tomcat时 The Apache Tomcat installation at this directory is version 8.5.6
- python README
- doxygen使用~~用这个注释自动生成文档,炒鸡方便
- shell队列实现线程并发控制
- Android Bmob--免费的网络存储的使用
- Android 自定义View画一条线
- 砥砺奋进!GitChat 发布 1.9 版本更新公告
- 滑动+底部导航
- 20171020Java入门笔记(四)线程
- Date类为什么设计为可变的,而不是像String一样?
- Java堆内存Heap与非堆内存Non-Heap概要
- Android代码内存优化建议-Android资源篇
- UISearchBar 去边框 改背景 (蛮恶心得控件 不如UITextFile 自己封装个)