短信验证
来源:互联网 发布:番禺沙湾网络 编辑:程序博客网 时间:2024/05/29 09:53
1.:导入包
2:
2.2、在Module的build.gradle里面将libs加入仓库(repositories):
repositories{ flatDir{ dirs 'libs' //就是你放aar的目录地址 }}
2.3、在Module的build.gradle里面添加依赖(dependencies ):
dependencies { ....//你的其他依赖 compile name:'SMSSDK-<version>',ext:'aar' compile name:'SMSSDKGUI-<version>',ext:'aar'}
3:.设置权限
<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" />
4、添加以下Activity:
<activity android:name="com.mob.tools.MobUIShell" android:theme="@android:style/Theme.Translucent.NoTitleBar" android:configChanges="keyboardHidden|orientation|screenSize" android:windowSoftInputMode="stateHidden|adjustResize"/>
5.布局
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<EditText
android:id="@+id/et_phone_number"
android:layout_width="280dp"
android:layout_height="wrap_content"
android:hint="phone number"
android:onClick="onClick" />
<LinearLayout
android:layout_width="350dp"
android:layout_height="wrap_content"
android:layout_marginTop="15dp"
android:orientation="horizontal">
<EditText
android:id="@+id/et_verification_code"
android:layout_width="150dp"
android:layout_height="wrap_content"
android:hint="verification code"
android:onClick="onClick" />
<TextView
android:id="@+id/tv_get_verification_code"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:onClick="onClick"
android:padding="10dp"
android:text="获取验证码"
android:textSize="19dp" />
</LinearLayout>
<TextView
android:id="@+id/tv_verification_code"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="15dp"
android:text="验证"
android:textSize="25dp" />
<TextView
android:id="@+id/tv_show_verification_pager"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_margin="15dp"
android:text="验证"
android:textSize="25dp" />
</LinearLayout>
6.在MainActivity里面写
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
private EditText et_phone_number;
private EditText et_verification_code;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextView tv_show_verification_pager = (TextView) findViewById(R.id.tv_show_verification_pager);
TextView tv_get_verification_code = (TextView) findViewById(R.id.tv_get_verification_code);
TextView tv_verification_code = (TextView) findViewById(R.id.tv_verification_code);
tv_show_verification_pager.setOnClickListener(this);
tv_get_verification_code.setOnClickListener(this);
tv_verification_code.setOnClickListener(this);
et_phone_number = (EditText) findViewById(R.id.et_phone_number);
et_verification_code = (EditText) findViewById(R.id.et_verification_code);
//注册短信回调
SMSSDK.registerEventHandler(eh);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.tv_show_verification_pager:
//打开注册页面
RegisterPage registerPage = new RegisterPage();
registerPage.setRegisterCallback(new EventHandler() {
public void afterEvent(int event, int result, Object data) {
// 解析注册结果
if (result == SMSSDK.RESULT_COMPLETE) {
@SuppressWarnings("unchecked")
HashMap<String, Object> phoneMap = (HashMap<String, Object>) data;
String country = (String) phoneMap.get("country");
String phone = (String) phoneMap.get("phone");
}
}
});
registerPage.show(MainActivity.this);
break;
case R.id.tv_get_verification_code:
SMSSDK.getVerificationCode("86", et_phone_number.getText().toString().trim(), new OnSendMessageHandler() {
@Override
public boolean onSendMessage(String s, String s1) {
return false;
}
});
break;
case R.id.tv_verification_code:
SMSSDK.submitVerificationCode("86", et_phone_number.getText().toString().trim(), et_verification_code.getText().toString().trim());
break;
}
}
EventHandler eh = new EventHandler() {
@Override
public void afterEvent(int event, int result, Object data) {
if (result == SMSSDK.RESULT_COMPLETE) {
//回调完成
if (event == SMSSDK.EVENT_SUBMIT_VERIFICATION_CODE) {
//提交验证码正确的回调
runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(MainActivity.this, "验证成功", Toast.LENGTH_SHORT).show();
}
});
} else if (event == SMSSDK.EVENT_GET_VERIFICATION_CODE) {
//获取验证码成功
runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(MainActivity.this, "获取验证码成功", Toast.LENGTH_SHORT).show();
}
});
} else if (event == SMSSDK.EVENT_GET_SUPPORTED_COUNTRIES) {
//返回支持发送验证码的国家列表
}
} else {
((Throwable) data).printStackTrace();
Log.e("tag", ((Throwable) data).getMessage().toString());
//获取验证码成功
runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(MainActivity.this, "失败", Toast.LENGTH_SHORT).show();
}
});
}
}
};
@Override
protected void onDestroy() {
super.onDestroy();
SMSSDK.unregisterEventHandler(eh);
}
}
7.创建一个对应消息类
public class app extends Application {
@Override
public void onCreate() {
super.onCreate();
// 通过代码注册你的AppKey和AppSecret
MobSDK.init(this, "1ff436dce2b00", "a95fd735f3142840ee845599b9f3d572");
}
}