zoukankan      html  css  js  c++  java
  • Mob.com 短信验证的简单使用

    1、环境配置


    a、sdk下载
    http://www.mob.com/#/downloadDetail/SMS/android   SMS For Android集成sdk下载

    b、导入sdk

    SMSSDK 2.0.1

    2.0.1开始使用aar文件集成。更方便快捷
    2.1 首先这是一个Android项目

    AARTest
    2.2 外面这个AARTest 是一个Project。app是这个Project的一个module。如要在这个module里面使用带界面的SMSSDK。
    就将MobCommons.jar,MobTools.jar,SMSSDK-2.0.1.aar,SMSSDKGUI-2.0.1.aar放到了app的libs目录下。然后在app
    目录下的build.gradle,加上红圈中的这几句就行了。
    buildgradle

    2.0.0及以下版本

    2.0.0及以下的版本在android studio里面以依赖子module的形式集成。

    2.1   一种简单的方法就是先按eclipse的步骤将“SMSSDK”导入eclipse,然后利用android studio导入eclipse adt项目为module。(下图第二个选项,不是选中的那个),然后在要使用的项目的build.gradle添加依赖

    图1,以eclipse adt项目创建module

    选择library

    图2添加依赖:

    修改gradle

     

    2.2  第二种就是完全自己手动创建module,移动相关文件,最后添加依赖

    这个是手动将SMSSDK 转成studio的module。和eclipse导出的功能是一样的,只是eclipse导出的文件目录不是studio的标准目录,是通过设置sourceset自定义的目录。这个教材可以帮你熟悉studio的目录和eclipse的区别。
    Eclipse   Android Studio
    src ==> [module  name]/src/main/java
    res ==>[module name]/src/main/res
    libs下的jar ==> [module name]/libs
    libs下的so ==>[module name]/src/main/jniLibs
    assets ==> [module name]/src/main/assets
    aidl/ ==>[module name]/src/main/aidl
    rs/ ==> [module name]/src/main/rs
    jni/ ==>[module name]/src/main/jni
    1,在你项目的根目录新建一个android library module。如图
    新建module
    图1,新建module
    选择library
    图2,选择android library(老版本的界面可能不是这样子的)
    填写module信息
    图3,填写module的信息。module的名字你可以自己取,建议还是smssdk。package name一定要是cn.smssdk,因为我们代码里面就是用这个包名。当然你这里填错也没事,到后面都可以自己手动更改。继续点击next,选择无activity(add no activity)
    2,将相应的文件移到到module的文件下
    2.1 打开你下载的SDK文件夹,打开SMSSDK,其实这个教材就是手动将这个SMSSDK项目变成android studio的module。
    QQ截图20150630105530
    图1,先来移动libs下的文件,将libs下面的这两个jar移到到smssdk/libs下,将选中的这几个文件夹移动到smssdk/src/main/jniLibs(自己新建jniLibs文件夹)下
    如果你是老版本,依赖可能没有自动生成,你需要自己修改smssdk/build.gradle, 在这个文件里面添加这一句依赖。这句话的意思就是编译时依赖libs文件夹下的所有jar文件
    QQ截图20150630114359
    对于更老的版本(0.7.2以下)是不支持NDK 预编译本地库( prebuilt native libraries)的,建议你升级到最新版
         2.2 将smssdk/src/main/res这个文件夹清空。将我们SMSSDK的res下的东西全移进去
         2.3 smssdk的src文件下的内容扔到 smssdk/src/main/java下。因为studio已经帮我们生成了cn.smssdk。我们只要移到gui这个文件夹到cn.smssdk这个包里面去就行了。
    QQ截图20150630115101

    2.4 将smssdk/src/main/AndroidManifest.xml 替换成SMSSDK下的AndroidManifest.xml。
    manifest
    新版不允许我们在manifest里面添加debug信息,所以这里会出现错误,删掉这一句就行。
    2.5 最后在你要使用smssdk的module下的build.gradle里面添加依赖
    修改gradle
    compile project(“:smssdk”) 注意这个”:smssdk”是根据你smssdk这个module的位置改变的。你建在项目的根目录下就不用改动。接下来的使用就和eclipse里面的一样了。

    添加完后别忘了执行一下Tools->Android->Sync Project with Gradle Files

    3、配置AndroidManifest.xml

    查看视频教程
    打开您项目的“AndroidManifest.xml”,在其中添加如下的权限:


    然后打“application”下添加如下activity:
    1. <activity
    2. android:name="com.mob.tools.MobUIShell"
    3. android:theme="@android:style/Theme.Translucent.NoTitleBar"
    4. android:configChanges="keyboardHidden|orientation|screenSize"
    5. android:windowSoftInputMode="stateHidden|adjustResize"/>

    4、添加代码

    启动SDK

    在您的项目启动时,调用下面的代码:

    发送短信验证码

    短信SDK内置了开源的GUI功能,您可以通过调用下面的代码打开短信验证页面:

    1. //打开注册页面
    2. RegisterPage registerPage = new RegisterPage();
    3. registerPage.setRegisterCallback(new EventHandler() {
    4. public void afterEvent(int event, int result, Object data) {
    5. // 解析注册结果
    6. if (result == SMSSDK.RESULT_COMPLETE) {
    7. @SuppressWarnings("unchecked")
    8. HashMap<String,Object> phoneMap = (HashMap<String, Object>) data;
    9. String country = (String) phoneMap.get("country");
    10. String phone = (String) phoneMap.get("phone");
    11. // 提交用户信息
    12. registerUser(country, phone);
    13. }
    14. }
    15. });
    16. registerPage.show(context);


    其中EventHandler是短信SDK的操作回调,具体说明文档请参阅:短信SDK操作回调章节。

    显示通信录好友列表

    同时,短信SDK也内置了通过本设备通信录换取本应用内用户列表的功能,可以通过下面的代码打开“通信录好友”页面:



    5、项目实例

    1、布局
    1. <?xml version="1.0" encoding="utf-8"?>
    2. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    3. xmlns:tools="http://schemas.android.com/tools"
    4. android:layout_width="match_parent"
    5. android:layout_height="match_parent"
    6. tools:context="lpc.com.lpc_sms.MainActivity">
    7. <Button
    8. android:id="@+id/Registered_phone"
    9. android:layout_width="match_parent"
    10. android:layout_height="wrap_content"
    11. android:text="登陆或注册手机号" />
    12. </RelativeLayout>



    2、java文件

    1. package lpc.com.lpc_sms;
    2. import android.os.Bundle;
    3. import android.support.v7.app.AppCompatActivity;
    4. import android.view.View;
    5. import android.widget.Button;
    6. import java.util.HashMap;
    7. import java.util.Random;
    8. import cn.smssdk.EventHandler;
    9. import cn.smssdk.SMSSDK;
    10. import cn.smssdk.gui.RegisterPage;
    11. public class MainActivity extends AppCompatActivity {
    12. private Button button;
    13. private String APP_KEY = "1106bdba71428";
    14. private String APP_SECRET = "6b3b1458a2d8149a79f61db92260cbd3";
    15. @Override
    16. protected void onCreate(Bundle savedInstanceState) {
    17. super.onCreate(savedInstanceState);
    18. setContentView(R.layout.activity_main);
    19. SMSSDK.initSDK(this,APP_KEY,APP_SECRET);
    20. button = (Button) this.findViewById(R.id.Registered_phone);
    21. button.setOnClickListener(new View.OnClickListener() {
    22. @Override
    23. public void onClick(View view) {
    24. //打开注册页面
    25. RegisterPage registerPage = new RegisterPage();
    26. registerPage.setRegisterCallback(new EventHandler() {
    27. public void afterEvent(int event, int result, Object data) {
    28. // 解析注册结果
    29. if (result == SMSSDK.RESULT_COMPLETE) {
    30. @SuppressWarnings("unchecked")
    31. HashMap<String,Object> phoneMap = (HashMap<String, Object>) data;
    32. String country = (String) phoneMap.get("country");
    33. String phone = (String) phoneMap.get("phone");
    34. // 提交用户信息
    35. registerUser(country, phone);
    36. }
    37. }
    38. });
    39. registerPage.show(MainActivity.this);
    40. }
    41. });
    42. }
    43. public void registerUser(String country,String phone){
    44. Random r = new Random();
    45. String uid = Math.abs(r.nextInt())+ "";
    46. String nackName = "liupengcheng";
    47. SMSSDK.submitUserInfo(uid,nackName,null,country,phone);
    48. }
    49. }
    3、实现效果



    6、总结

    此实例只是简单的调用





  • 相关阅读:
    10. 正则表达式匹配
    svn 类似.gitignore功能实现
    GF学习未解之谜
    cocos
    unity 编辑器内对Game视图进行截图
    Roughlike游戏里面的随机数种子
    网站推荐——游戏图标网
    Unity 使用image绘制线段 直线
    c# unity 异步任务队列
    Unity编辑器调用外部exe程序 和 windows文件夹
  • 原文地址:https://www.cnblogs.com/liupengcheng/p/5341438.html
Copyright © 2011-2022 走看看