Android实战——第三方服务之Bmob后端云的集成、用户登陆、用户注册、获取用户、用户注销(一)

时间:2022-11-18 23:46:19

第三方服务之Bmob后端云的集成、用户登陆、用户注册、获取用户、用户注销(一)


Bmob简介:

Android实战——第三方服务之Bmob后端云的集成、用户登陆、用户注册、获取用户、用户注销(一)


步骤一:Bmob集成

www.bmob.cn注册一个用户,在网站后台创建一个应用,进去管理页面之后在设置中获取Application ID

Android实战——第三方服务之Bmob后端云的集成、用户登陆、用户注册、获取用户、用户注销(一)

在你的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("用户名或密码错误");
}
}
});
}

步骤三:用户注册请求(请求成功后会自动在后台创建一个_User表

    /**
* 注册用户
*/
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);
}