Android 手机获取短信验证码—自带UI界面
2016-09-11 20:06
267 查看
第三方框架:短信验证,我比较喜欢直来直去,多余的话不讲,直接上代码,这里主要讲的是在android studio中的详细步骤。
1、打开Mob网址:http://dashboard.mob.com 下载SDK
选择Studio下载
创建应用,包名必须与创建的项目包名一致。
创建好应用以后会给你App Key和App Secent
这样网站申请的步骤就完成了.
下面开始在Studio中设置,首先需要注意一下,如果Studio版本高于23的话,需要把版本改成22,否则会关闭APP。
<span style="font-family:Microsoft YaHei;font-size:18px;">android { compileSdkVersion 22 buildToolsVersion "22.0.1"}</span>
<span style="font-family:Microsoft YaHei;font-size:18px;">defaultConfig { applicationId "us.mifeng.guaju.myapplication" minSdkVersion 16 targetSdkVersion 22 versionCode 1 versionName "1.0" }</span>
导入SDK,“SMSSDK”目录存放的是短信SDK的全部内容,“SMSSDKSample”中保存了短信SDK的演示项目代码,而“SMSSDKSample.apk”则是“SMSSDKSample”的可执行程序。
将MobCommons.jar,MobTools.jar,SMSSDK-2.0.1.aar,SMSSDKGUI-2.0.1.aar放到了app的libs目录下。然后在app目录下的build.gradle,加上红圈中的这几句就行了。
<span style="font-family:Microsoft YaHei;font-size:18px;">repositories{ flatDir{ dirs 'libs' //就是你放aar的目录地址 } } dependencies { compile fileTree(include: ['*.jar'], dir: 'libs') testCompile 'junit:junit:4.12' compile 'com.android.support:appcompat-v7:22.2.0 compile files('libs/MobCommons-2016.0714.1402.jar') compile files('libs/MobTools-2016.0714.1402.jar') compile name: 'SMSSDK-2.1.1', ext: 'aar' compile name: 'SMSSDKGUI-2.1.1', ext: 'aar' compile 'com.jakewharton:butterknife:5.1.1' }</span>
配置AndroidManifest.xml权限
在application外面添加activity:
<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.READ_SMS" /> <uses-permission android:name="android.permission.GET_TASKS" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
在application里面添加activity:
<span style="font-family:Microsoft YaHei;font-size:18px;"><activity android:name="com.mob.tools.MobUIShell" android:theme="@android:style/Theme.Translucent.NoTitleBar" android:configChanges="keyboardHidden|orientation|screenSize" android:windowSoftInputMode="stateHidden|adjustResize"/></span>
实现短信验证的代码
创建新的class文件,继承appliction:
<span style="font-family:Microsoft YaHei;font-size:18px;"> public void onCreate() { super.onCreate(); SMSSDK.initSDK(this, "16f653af72b00", "52c1889f3e62c77ea8f8942b0d029664"); } }</span>
在MainActivity中:
<span style="font-family:Microsoft YaHei;font-size:18px;">public class MainActivity extends AppCompatActivity { //用的butterknife @InjectView(R.id.et1) EditText et1; @InjectView(R.id.et2) EditText et2; @InjectView(R.id.getcode) Button getCode; @InjectView(R.id.bt_login) Button login; private String phoneNumber; private String code; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ButterKnife.inject(this); } public void regist() { //需要先定义一个接口回调 EventHandler eh = new EventHandler() { @Override public void afterEvent(int event, int result, Object data) { if (result == SMSSDK.RESULT_COMPLETE) { System.out.println("SMSSDK.RESULT_COMPLETE"); //回调完成 if (event == SMSSDK.EVENT_SUBMIT_VERIFICATION_CODE) { runOnUiThread(new Runnable() { @Override public void run() { Toast.makeText(getApplication(), "您已验证成功,请您订餐", Toast.LENGTH_SHORT) .show(); } }); //提交验证码成功 } else if (event == SMSSDK.EVENT_GET_VERIFICATION_CODE) { System.out.println("EVENT_GET_VERIFICATION_CODE"); System.out.println("发送了"); //如果收到了验证码就会走这 runOnUiThread(new Runnable() { @Override public void run() { Toast.makeText(getApplication(), "已发送验证码,请注意查收", Toast.LENGTH_SHORT) .show(); } }); } else if (event == SMSSDK.EVENT_GET_SUPPORTED_COUNTRIES) { System.out.println("EVENT_GET_SUPPORTED_COUNTRIES"); //返回支持发送验证码的国家列表 } } else { runOnUiThread(new Runnable() { @Override public void run() { Toast.makeText(getApplication(), "操作失败,重新获取验证码", Toast.LENGTH_SHORT) .show(); } }); ((Throwable) data).printStackTrace(); } } }; SMSSDK.registerEventHandler(eh); //注册短信回调 } @OnClick({R.id.getcode, R.id.bt_login}) public void onClick(View view) { switch (view.getId()) { case R.id.getcode: regist();//调用了注册短信发送的回调接口 phoneNumber = et1.getText().toString().trim(); if (TextUtils.isEmpty(phoneNumber))//判断字符串是null或者是“” { Toast.makeText(getApplicationContext(), "请输入合法的手机号", Toast.LENGTH_LONG ).show(); } else { SMSSDK.getVerificationCode("86", phoneNumber); } break; case R.id.bt_login: phoneNumber = et1.getText().toString().trim(); code = et2.getText().toString().trim(); if (TextUtils.isEmpty(phoneNumber) && TextUtils.isEmpty(code)) { Toast.makeText(getApplicationContext(), "请检验您输入的信息", Toast.LENGTH_LONG ).show(); } else { SMSSDK.submitVerificationCode("86",phoneNumber,code); } break; } } } </span>
以上就是Mob短信验证的全部代码。
相关文章推荐
- Android之文本框自动获取发送到手机的短信验证码
- 手机获取短信验证码——自定义UI界面
- Android手机自带内部存储路径的获取
- Android手机自带内部存储路径的获取
- 解决Android手机自带内部存储路径存在但是却获取不到内容的问题
- 手机获取短信验证码——内置UI界面
- Android如何通过手机自动获取短信验证码
- Android手机自带内部存储路径的获取
- Android手机自带内部存储路径的获取 (转)
- Android 获取手机系统的语言
- Android编程获取手机型号,本机电话号码,sdk版本及firmware版本号(即系统版本号)
- Android获取手机屏幕大小 — DisplayMetrics取得画面宽高的方法
- Android不是所有的手机号码,都可以获取。
- 获取android手机总内存和可用内存的一些方法
- Android手机号码获取问题
- Android基础教程(四)之------获取手机联系人信息
- Android编程获取手机型号,本机电话号码,sdk版本及firmware版本号(即系统版本号)
- android--获取手机的IMSI码,并判断是中国移动/中国联通/中国电信
- 【Android基础】获取手机分辨率、状态栏、标题栏高度
- 获取Android手机总内存和可用内存