bomb
bomb提供免费移动应用云服务器 首页.
1.注册后新建应用,在设置中可看到以下信息
bomb sdk的导入
官方提供了两种导入SDK方法,推荐使用自动导入
1.在build.gradle(project)中添加maven仓库地址
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.2.0'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
jcenter()
maven { url "https://raw.github.com/bmob/bmob-android-sdk/master" }
}
}
2.在build.gradle(app)中添加依赖文件
buildTypes {
release {
....
useLibrary 'org.apache.http.legacy'
}
}
}
3.在dependencies添加如下依赖
dependencies {
.......
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.在AndroidManifest.xml文件下添加应用权限
<!--允许联网 -->
<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.此时点击sync,可看到导入的SDK说明该步成功
初始化SDK
导入SDK后开始初始化SDK,在MainActivity的concreat()方法中初始化SDK
ps:在initialize中填入你自己的APPID。
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Bmob.initialize(this, "你的APPID");
}
}
实现插入数据
一个数据对象(APP中创建的BmobObject类的子类)对应于Bmob后台的一个数据表。
1.于是我们在在Java文件夹下新建类继承BmobObject,并定义get和set方法。
public class Student extends BmobObject{
private String no;
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getNo() {
return no;
}
public void setNo(String no) {
this.no = no;
}
}
2.在bomb中新建表并通过添加列的方式添加属性
PS:在后台加入的数据表中的表名,列名应与JavaBean中保持一致
3.添加数据功能的实现
在MainActivity的concreat()方法中加入如下代码
Student st = new Student();
st.setName("yf");
st.setNo("201724100233");
st.save(new SaveListener<String>() {
@Override
public void done(String objectId,BmobException e) {
if (e == null) {
Toast.makeText(getApplication(), "添加数据成功" ,Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(getApplication(), "失败" +e.getMessage(),Toast.LENGTH_SHORT).show();
}
}
});
4.上述步骤全部完成后运行APP,可在后台看到新插入的数据
开发中遇到问题的总结
1.运行时出现无法识别字符"BmobException""toast"等
解决办法:虽然已导入sdk成功,但到Android stdio在代码编写时不自动导包(虽然已设auto import),可在编码时alt+enter实现导包
2.出现java.net.UnknownServiceException: CLEARTEXT… 报错
之前一直没用getmessage不知道错误在哪,只知道插入数据失败
解决办法:在application 元素中添加
android:usesCleartextTraffic=”true”
参考 链接.
……………………………………………………………………………手动分割
源码已上传: 链接.
1.修改使用自己的APPID
2.服务器后台创建相对应的数据表(自己重写Javabean类也可以)