上一篇博文我们简单介绍何为Bmob移动后端服务平台,以及其相关功能和优势。本文将利用Bmob快速实现简单例子,进一步了解它的强大之处。
在网址栏输入www.bmob.cn或者在百度输入Bmob进行搜索,打开Bmob官网后,点击右上角的“注册”,在跳转页面填入你的姓名、邮箱、设置密码,确认后到你的邮箱激活Bmob账户,你就可以用Bmob轻松开发应用了。
登录账号进入bmob后台后,点击后台界面左上角“创建应用”,在弹出框输入你应用的名称,然后确认,你就拥有了一个等待开发的应用。
选择你要开发的应用,点击该应用下方对应的“应用密钥”
在跳转页面,获取Application
ID,此ID将会在初始化SDK中使用到。
获取Application
ID后,下载SDK,开发者可以根据自己的需求选择相应的iOS SDK 或Android SDK,点击下载即可。
需求:本实例简单的实现用户利用用户名和密码进行注册。注册成功后,利用注册的数据,进行登陆,操作成功后给出相应的提示。
代码实现步骤:
1> 引入BmobSDK 架包
将下载的BmobSDK中包含如下的架包引入到Android应用
2> 在清单文件中添加如下的权限
<uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> <uses-permission android:name="android.permission.READ_PHONE_STATE"/> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.READ_LOGS"/>3> 初始化BmobSDK
在你应用程序启动的Activity的onCreate()方法中初始化Bmob功能。代码如下所示:
@Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); // 初始化 Bmob SDK // 使用时请将第二个参数Application ID替换成你在Bmob服务器端创建的Application ID Bmob.initialize(this, "Your Application ID"); }4>创建继承于BmobObject的实体UserBean
package com.example.bmobdemo.bean; import cn.bmob.v3.BmobObject; /** * * * 项目名称:BmobDemo * 类名称:UserBean * 类描述: 继承BmobObject的用户实体类 * 创建时间:2014年12月18日 下午10:25:40 * 修改人:Administrator * 修改时间:2014年12月18日 下午10:25:40 * 修改备注: * @version * */ public class UserBean extends BmobObject{ /** * */ private static final long serialVersionUID = 1L; private String loginId; private String userName; private String password; public String getLoginId() { return loginId; } public void setLoginId(String loginId) { this.loginId = loginId; } public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } @Override public String toString() { return "UserBean [loginId=" + loginId + ", userName=" + userName + ", password=" + password + "]"; } }
Bmob平台服务器数据
<span style="font-size:18px;"><?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.bmobdemo" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="17" android:targetSdkVersion="19" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.READ_LOGS" /> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name="com.example.bmobdemo.MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest></span>
本实例需要一个用户名的EditText和密码的EditText,以及注册和登陆的Button。
<span style="font-size:18px;"><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginBottom="20dp" android:orientation="horizontal" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginRight="10dp" android:text="用户名:" android:textColor="#FF0000" /> <EditText android:id="@+id/id_login_name_et" android:layout_width="match_parent" android:layout_height="wrap_content" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginBottom="20dp" android:orientation="horizontal" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginRight="10dp" android:text="密码:" android:textColor="#FF0000" /> <EditText android:id="@+id/id_password_et" android:layout_width="match_parent" android:layout_height="wrap_content" /> </LinearLayout> <Button android:id="@+id/id_register_btn" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginBottom="10dp" android:text="注册" android:textColor="#0000FF" /> <Button android:id="@+id/id_login_btn" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="登陆" android:textColor="#0000FF" /> </LinearLayout></span>
package com.example.bmobdemo; import java.util.List; import cn.bmob.v3.Bmob; import cn.bmob.v3.BmobQuery; import cn.bmob.v3.listener.FindListener; import cn.bmob.v3.listener.SaveListener; import com.example.bmobdemo.bean.UserBean; import com.example.bmobdemo.util.ToastUtils; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; public class MainActivity extends Activity implements OnClickListener { // Bmob应用创建建时获取的Application id,根据自己创建的应用来写入 private static final String BMOB_APPLICATION_ID = "be783fdda4eac8a781a9f80596e98fe0"; private Button registerBtn, loginBtn; private EditText loginEt, passwordEt; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); /** * 初始化BmobSDK */ Bmob.initialize(this, BMOB_APPLICATION_ID); initView(); } /** * * 初始化控件 */ private void initView() { registerBtn = (Button) this.findViewById(R.id.id_register_btn); loginBtn = (Button) this.findViewById(R.id.id_login_btn); loginEt = (EditText) this.findViewById(R.id.id_login_name_et); passwordEt = (EditText) this.findViewById(R.id.id_password_et); registerBtn.setOnClickListener(this); loginBtn.setOnClickListener(this); } /** * 注册 */ private void register() { String loginId = loginEt.getText().toString(); String password = passwordEt.getText().toString(); if (loginId.isEmpty() || password.isEmpty()) { ToastUtils.toast(this, "密码或账号不为空!"); return; } final UserBean userBean = new UserBean(); userBean.setLoginId(loginId); userBean.setPassword(password); userBean.setUserName("Bmob"); /** * 保存数据到Bmob服务器 */ userBean.save(this, new SaveListener() { @Override public void onSuccess() { ToastUtils.toast(MainActivity.this, userBean.toString() + " 注册成功"); } @Override public void onFailure(int arg0, String arg1) { ToastUtils.toast(MainActivity.this, arg0 + "," + arg1 + " 注册失败"); } }); } /** * 登陆 */ private void login() { String loginId = loginEt.getText().toString(); String password = passwordEt.getText().toString(); if (loginId.isEmpty() || password.isEmpty()) { ToastUtils.toast(this, "密码或账号不为空!"); return; } BmobQuery<UserBean> userQuery = new BmobQuery<UserBean>(); // 查询条件 userQuery.addWhereEqualTo("loginId", loginId); userQuery.addWhereEqualTo("password", password); userQuery.findObjects(this, new FindListener<UserBean>() { @Override public void onError(int arg0, String arg1) { ToastUtils.toast(MainActivity.this, arg0 + "," + arg1 + " 登陆失败"); } @Override public void onSuccess(List<UserBean> userList) { if (userList != null && userList.size() > 0) ToastUtils.toast(MainActivity.this, " 登陆成功"); else { ToastUtils.toast(MainActivity.this, " 登陆失败"); } } }); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.id_register_btn: register(); break; case R.id.id_login_btn: login(); break; } } }
package com.example.bmobdemo.bean; import cn.bmob.v3.BmobObject; /** * * * 项目名称:BmobDemo * 类名称:UserBean * 类描述: 继承BmobObject的用户实体类 * 创建时间:2014年12月18日 下午10:25:40 * 修改人:Administrator * 修改时间:2014年12月18日 下午10:25:40 * 修改备注: * @version * */ public class UserBean extends BmobObject{ /** * */ private static final long serialVersionUID = 1L; private String loginId; private String userName; private String password; public String getLoginId() { return loginId; } public void setLoginId(String loginId) { this.loginId = loginId; } public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } @Override public String toString() { return "UserBean [loginId=" + loginId + ", userName=" + userName + ", password=" + password + "]"; } }
package com.example.bmobdemo.util; import android.content.Context; import android.widget.Toast; /** * Toast提示工具类 * createdTime: 2014年12月18日 下午10:55:21 * */ public class ToastUtils { public static void toast(Context context,String msg){ Toast.makeText(context, msg, Toast.LENGTH_SHORT).show(); } public static void toast(Context context,int msgId){ Toast.makeText(context, msgId, Toast.LENGTH_SHORT).show(); } }
Bmob移动后端云服务平台--Android从零开始--(二)android快速入门
原文地址:http://blog.csdn.net/a123demi/article/details/42059621