您的位置:首页 > 产品设计 > UI/UE

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短信验证的全部代码。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息