第三方服务之Bmob后端云的集成、用户登陆、用户注册、获取用户、用户注销(一)
Bmob简介:
步骤一:Bmob集成
在www.bmob.cn注册一个用户,在网站后台创建一个应用,进去管理页面之后在设置中获取Application ID:
在你的Android Studio项目中的Project的build.gradle中添加Bmob的maven仓库:
allprojects { repositories { jcenter() //Bmob的maven仓库地址,必须填写 maven { url "https://raw.github.com/bmob/bmob-android-sdk/master" } } }接着在app的build.gradle中添加 compile 依赖文件:
android { compileSdkVersion 23 buildToolsVersion "23.0.2" //**bmob-sdk:3.4.6版本依赖包,用于兼容Android6.0系统** useLibrary 'org.apache.http.legacy'
dependencies { compile fileTree(include: ['*.jar'], dir: 'libs') testCompile 'junit:junit:4.12' compile 'com.android.support:appcompat-v7:23.3.0' //3.4.6依赖 compile 'cn.bmob.android:bmob-sdk:3.4.6' compile 'com.squareup.okhttp:okhttp:2.4.0' //自`V3.4.3版本`开始,使用`okhttp`优化SDK的网络框架 compile 'com.squareup.okio:okio:1.4.0' compile 'com.android.support:support-v4:23.2.1'在manifests文件中 配置权限 :
<!--允许联网 --> <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" />在Activity的onCreate方法中 初始化 BmobSDK:
//初始化Bmob Bmob.initialize(this, "Your Bmob Application ID");
首先得创建javaBean,继承BmobUser:(属于Bmob用户的扩展类)
public class User extends BmobUser { private String nickname; public String getNickname() { return nickname; } public void setNickname(String nickname) { this.nickname = nickname; } }
代码中登陆请求:
/** * 请求登陆 */ public static void login(final Activity activity, String username, String password) { DialogUtils.showLoadingDialog(activity, "正在登陆中", true); User u = new User(); u.setUsername(username); u.setPassword(password); u.login(activity, new SaveListener() { @Override public void onSuccess() { //跳转主页面 Intent intent = new Intent(activity, MainActivity.class); activity.startActivity(intent); activity.finish(); } @Override public void onFailure(int code, String msg) { if (code == 9016) { DialogUtils.successLoadingDialog("请连接网络"); } else { DialogUtils.errorLoadingDialog("用户名或密码错误"); } } }); }
/** * 注册用户 */ public static void register(final Activity activity, String username, String password) { DialogUtils.showLoadingDialog(activity, "正在注册", true); BmobUser u = new BmobUser(); u.setUsername(username); u.setPassword(password); u.signUp(activity, new SaveListener() { @Override public void onSuccess() { //注册成功 DialogUtils.successLoadingDialog("注册成功"); Intent intent = new Intent(activity, MainActivity.class); activity.startActivity(intent); activity.finish(); } @Override public void onFailure(int code, String msg) { if (code == 9016) { DialogUtils.errorLoadingDialog("请连接网络"); } else if (code == 202) { DialogUtils.errorLoadingDialog("用户名已存在"); } else { DialogUtils.errorLoadingDialog("注册失败"); } } }); }
/** * 获取当前用户 */ public static User getUser(Context context) { user = BmobUser.getCurrentUser(context, User.class); return user; }
/** * 退出当前用户 */ public static void loginOut(Context context) { BmobUser.logOut(context); }