MOB短信验证快速集成3.0.0及以上
1.Android Studio
AS版本的SMSSDK目录下包含以下内容:
MobCommons.jar:Mob 通用公共库(必须)
MobTools.jar:Mob 工具公共库(必须)
SMSSDK-<version>.aar:SMSSDK 核心(必须)
SMSSDKGUI-<version>.aar:SMSSDK GUI 开源库(非必须)
HowToUse.txt:使用说明
注意:如果你同时使用ShareSDK,保留一份公共库就行(公共库版本一致或兼容)。
2.1、将以上文件按需放入Android Studio项目所要使用SMSSDK的Module所在的Libs里面:
1.2、在Module的build.gradle里面将libs加入仓库(repositories):
repositories{ flatDir{ dirs 'libs' //就是你放aar的目录地址 } }
1.3、在Module的build.gradle里面添加依赖(dependencies ):
dependencies { ....//你的其他依赖 compile name:'SMSSDK-<version>',ext:'aar' compile name:'SMSSDKGUI-<version>',ext:'aar' }
最终,你的build.gradle看起来应该像这样:
四、添加代码
1.配置AndroidManifest.xml
1.1、添加以下权限:
<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" />
1.2、添加以下Activity:
<activity android:name="com.mob.tools.MobUIShell" android:theme="@android:style/Theme.Translucent.NoTitleBar" android:configChanges="keyboardHidden|orientation|screenSize" android:windowSoftInputMode="stateHidden|adjustResize"/>
1.3、在Application节点下添加以下属性:
android:name="com.mob.MobApplication"
1.4、在Application节点下添加以下meta-data:
<!-- 通过AndroidManifest配置AppKey和AppSecret,如果你选择通过代码配置,则不需要配置以下meta-data --> <meta-data android:name="Mob-AppKey" android:value="你的AppKey"/> <meta-data android:name="Mob-AppSecret" android:value="你的AppSecret"/>
最终,你的AndroidManifest.xml看起来应该像这样:
2.在Activity中注册sdk
2.1、在你的主Activity的onCreate方法中添加以下代码以完成sdk的注册:
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 如果希望在读取通信录的时候提示用户,可以添加下面的代码,并且必须在其他代码调用之前,否则不起作用;如果没这个需求,可以不加这行代码 SMSSDK.setAskPermisionOnReadContact(boolShowInDialog) // 创建EventHandler对象 eventHandler = new EventHandler() { public void afterEvent(int event, int result, Object data) { if (data instanceof Throwable) { Throwable throwable = (Throwable)data; String msg = throwable.getMessage(); Toast.makeText(MainActivity.this, msg, Toast.LENGTH_SHORT).show(); } else { if (event == SMSSDK.EVENT_GET_VERIFICATION_CODE) { // 处理你自己的逻辑 } } } }; // 注册监听器 SMSSDK.registerEventHandler(eventHandler); }
其中EventHandler是短信SDK的操作回调,具体说明文档请参阅:短信SDK操作回调章节。
2.2、在onDestroy中注销SDK:
protected void onDestroy() { super.onDestroy(); SMSSDK.unregisterEventHandler(eventHandler); }