集成短信验证码--Mob.com
来源:互联网 发布:种植牙失败知乎 编辑:程序博客网 时间:2024/06/08 13:43
集成短信验证码–Mob.com
ONE Goal,ONE Passion !
现在大多数app 在注册时会使用手机号直接注册,这样到挺方便的.不过对开发者来说就要去集成一些短信验证的sdk了.用的比较多的当属mob.com网址的api.
第1步: 登录网站注册开发者
http://dashboard.mob.com/#/main/index 注册用户,注册了用户后才能创建应用.
第2步: 创建应用得到App key, App Secret
如图:
点击添加后会生成app key,以及app secret.
注意: 应用名一定要和工程应用名一致.
第3步: 在自己工程中做集成
新建一个项目,项目名要和申请key时的名一致.开始集成:
我们的项目一般不要求有gui;只需将SMSSDK下的libs底下的文件移到你要使用的项目的相应位置即可。下载官方sdk.
如图:
如果在编译时提示ndkassembleerror之类的错误,请尝试在local.property里添加你的ndk路径
第4步:java代码实例化
a.在使用的时候去实例化,并且注册事件.
public class MainActivity extends Activity implements View.OnClickListener { private Button sensmsButton, verificationButton, countryButton; private TextView countryTextView, textView2; private EditText phonEditText, verEditText; // 填写从短信SDK应用后台注册得到的APPKEY private static String APPKEY = "dfa83789889c"; // 填写从短信SDK应用后台注册得到的APPSECRET private static String APPSECRET = "cccb7ff4168648e6bb9455d00bb8d54e"; public String phString; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); sensmsButton = (Button) findViewById(R.id.button1); verificationButton = (Button) findViewById(R.id.button2); countryButton = (Button) findViewById(R.id.button3); countryTextView = (TextView) findViewById(R.id.textView1); textView2 = (TextView) findViewById(R.id.textView2); phonEditText = (EditText) findViewById(R.id.editText1); verEditText = (EditText) findViewById(R.id.editText2); sensmsButton.setOnClickListener(this); verificationButton.setOnClickListener(this); countryButton.setOnClickListener(this); SMSSDK.initSDK(this, APPKEY, APPSECRET); EventHandler eh = new EventHandler() { @Override public void afterEvent(int event, int result, Object data) { Message msg = new Message(); msg.arg1 = event; msg.arg2 = result; msg.obj = data; System.out.println("result-----" + result); System.out.println("data-----" + data); handler.sendMessage(msg); } }; SMSSDK.registerEventHandler(eh); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.button1:// 获取验证码 if (!TextUtils.isEmpty(phonEditText.getText().toString())) { SMSSDK.getVerificationCode("86", phonEditText.getText() .toString()); phString = phonEditText.getText().toString(); } else { Toast.makeText(this, "电话不能为空", Toast.LENGTH_SHORT).show(); } break; case R.id.button2:// 校验验证码 if (!TextUtils.isEmpty(verEditText.getText().toString())) { SMSSDK.submitVerificationCode("86", phString, verEditText .getText().toString()); } else { Toast.makeText(this, "验证码不能为空", Toast.LENGTH_SHORT).show(); } break; case R.id.button3:// 国家列表 SMSSDK.getSupportedCountries(); // SMSSDK.getCountry(arg0); SMSSDK.getGroupedCountryList(); // SMSSDK.getCountryByMCC(arg0); break; default: break; } } Handler handler = new Handler() { @Override public void handleMessage(Message msg) { // TODO Auto-generated method stub super.handleMessage(msg); int event = msg.arg1; int result = msg.arg2; Object data = msg.obj; Log.e("event", "event=" + event); if (result == SMSSDK.RESULT_COMPLETE) { // 短信注册成功后,返回MainActivity,然后提示新好友 if (event == SMSSDK.EVENT_SUBMIT_VERIFICATION_CODE) {// 提交验证码成功 Toast.makeText(getApplicationContext(), "提交验证码成功", Toast.LENGTH_SHORT).show(); textView2.setText("提交验证码成功"); } else if (event == SMSSDK.EVENT_GET_VERIFICATION_CODE) { Toast.makeText(getApplicationContext(), "验证码已经发送", Toast.LENGTH_SHORT).show(); textView2.setText("验证码已经发送"); } else if (event == SMSSDK.EVENT_GET_SUPPORTED_COUNTRIES) {// 返回支持发送验证码的国家列表 Toast.makeText(getApplicationContext(), "获取国家列表成功", Toast.LENGTH_SHORT).show(); countryTextView.setText(data.toString()); } } else { ((Throwable) data).printStackTrace(); int resId = getStringRes(MainActivity.this, "smssdk_network_error"); Toast.makeText(MainActivity.this, "验证码错误", Toast.LENGTH_SHORT) .show(); if (resId > 0) { Toast.makeText(MainActivity.this, resId, Toast.LENGTH_SHORT) .show(); } } } }; @Override protected void onDestroy() { // TODO Auto-generated method stub super.onDestroy(); SMSSDK.unregisterAllEventHandler(); }}
b. 官方demo提供的xml.
<RelativeLayout 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:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity"> <EditText android:id="@+id/editText1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:ems="10" android:hint="手机号" android:inputType="number"> <requestFocus /> </EditText> <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignTop="@+id/editText1" android:layout_toRightOf="@+id/editText1" android:text="获取验证码" /> <EditText android:id="@+id/editText2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignLeft="@+id/editText1" android:layout_below="@+id/button1" android:ems="10" android:hint="验证码" android:inputType="number" /> <Button android:id="@+id/button2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignLeft="@+id/editText2" android:layout_below="@+id/editText2" android:text="验证" /> <Button android:id="@+id/button3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignLeft="@+id/button2" android:layout_centerVertical="true" android:text="获取支持的国家列表" /> <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignLeft="@+id/button3" android:layout_below="@+id/button3" /> <TextView android:id="@+id/textView2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignRight="@+id/button2" android:layout_below="@+id/button2" android:layout_marginTop="25dp" android:text="TextView" /></RelativeLayout>
第5步: 添加权限
<uses-permission android:name="android.permission.READ_CONTACTS" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.RECEIVE_SMS" /> <uses-permission android:name="android.permission.GET_TASKS" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
这样就完成了集成如图点击输入手机号即可收到验证码:
输入验证码就可以进行验证了.
完整demo地址:
http://download.csdn.net/my
错误码参考
SMSSDK for Android API回调中,当result=SMSSDK.RESULT_ERROR,则data的类型为Throwable;如果这个Throwable的message就存放有json数据,你可以从中读取status的错误码信息。一部分是服务器返回的。还有一部分是SDK本地生成的。
服务器错误码:
本地错误码:
4 0
- 集成短信验证码--Mob.com
- 短信验证安卓集成mob.com
- 短信验证安卓集成mob.com
- Android 免费短信验证码--Mob.com
- 验证码mob集成&本地验证生成&短信截获
- Android开发:app工程集成mob短信验证码功能
- android_app开发集成mob短信验证码功能
- Android集成Mob平台获取短信验证码
- Android集成Mob平台获取短信验证码
- mob短信验证码功能集成 ------未上线
- 集成mob的SMSSDK获取短信验证码的Demo
- 集成Mob第三方的短信验证码功能
- mob.com SMSSDK使用 免费短信验证
- iOS Mob短信验证码
- MOB短信验证码开发
- mob短信验证错误码
- 使用mob实现短信验证码验证
- 集成Mob短信,提交验证码成功的回调方法在子线程
- HDU 1542 Atlantis (矩形面积并)
- AESUtil AES加密工具类
- iOS collectionView实现瀑布流
- 有意思网站集锦
- Curl命令
- 集成短信验证码--Mob.com
- 交叉编译参数 -I -L -l 详解
- 将 gitblog 的博客内容搬迁到 CSDN
- Caused by: java.lang.NoSuchMethodError: javax.persistence.spi.PersistenceUnitInfo.getValidationMode(
- JAVA输入输出(IO)之文件
- 改下拉框的默认样式,有了这个插件什么都是浮云!
- Android官网:Configuring Gradle Builds英译
- linux下面C 利用openssl的AES库加密,解密
- Java时时调度(一)