安卓Android短信驗證功能實現

先發源碼: https://github.com/senonwx/SMSService.git

現在很多App會爲了安全給設置什麼短信驗證功能,對於我們開發者來說是個頭痛的問題。但是呢,萬事開頭難,不要慫,就是幹。接下來就一一爲你解答。

首先呢,這個Demo我用的是shardSDK的短信SDK,很好用,也很簡單,說明一點,如果你是個懶人呢,就直接用他的GUI,如果想自定義,也可以,不過它的也不錯。

第一步是去shardSDK申請個賬號,然後進入下載SDK頁面選擇下載Android的target,創建好自己的應用,他會給你Appkey和Appsercet。

第二步將文檔解壓,然後看下面:

文件名                        說明                需求

MobCommons.jar                Mob 通用公共庫      必須
MobTools.jar                  Mob 工具公共庫      必須

SMSSDK-<version>.aar          SMSSDK 核心         必須
SMSSDKGUI-<version>.aar       SMSSDK GUI 開源庫   可選

如果你需要用GUI庫,則需要加入全部這四個文件,不需要可以去掉SMSSDKGUI。爲了方便和ShareSDK一起集成,公共庫依然打包成jar。
如果你同時使用ShareSDK,保留一份公共庫就行(公共庫版本一致或兼容)。

2,如何使用

將以上文件按需放入Android Studio項目所要使用SMSSDK的Module所在的Libs裏面,再在Module的build.gradle裏面將libs加入倉庫(repositories),
然後添加依賴(dependencies )示例如下:

repositories{
    flatDir{
        dirs 'libs' //就是你放aar的目錄地址
    }
}

dependencies {
    ....//你的其他依賴
    compile name:'SMSSDK-<version>',ext:'aar'
    compile name:'SMSSDKGUI-<version>',ext:'aar'
}

3, 混淆配置

如果你開啓了proguard混淆,需要在proguard的rules裏面添加以下:

# SMSSDK
-dontwarn com.mob.**
-keep class com.mob.**{*;}

-dontwarn cn.smssdk.**
-keep class cn.smssdk.**{*;}
第三步,添加權限,初始化SMSSDK,並在mainfest加入下面這個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" />
<activity
            android:name="com.mob.tools.MobUIShell"
            android:theme="@android:style/Theme.Translucent.NoTitleBar"
            android:configChanges="keyboardHidden|orientation|screenSize"
            android:windowSoftInputMode="stateHidden|adjustResize"/>
SMSSDK.initSDK(this, "你的Appkey", "你的Appsercet");//就是剛申請到的兩串數字字母拼接的值
第四步,打開自帶的界面

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(this);
這是SMSSDK自帶的界面,也支持自定義,第二個activity是自定義的,可以去看看,也很簡單不難明白。

好了,都到這裏了,有錯誤的地方請大家多多指正,謝謝!!!






發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章