Android学习之如何集成极光短信验证

Posted 心宽何处不桃源

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android学习之如何集成极光短信验证相关的知识,希望对你有一定的参考价值。

先借助android studio工具新建一个新的空项目。

步骤一 (获取appkey)

1.在极光官网平台上新建短信应用(根据要求包名和应用名称填写好)


2.获取得到Jpush_AppKey


步骤二  (导入第三方库和so文件)

1.用Android studio打开应用

2.切换应用状态Android为Project状态


3.在libs文件夹下把对应的jar文件拷入  然后as libraries


步骤三 (初始化以及调用)

1.新建Application初始化

public class MyApp extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        SMSSDK.getInstance().setDebugMode(true);
        SMSSDK.getInstance().initSdk(this);
    }
}

2.在activity中调用

public class MainActivity extends BaseActivity {
    EditText edit_name;
    EditText edit_pwd;
    EditText sms;
    String name;
    String pwd;
    Button get_sms;
    Button btn_login;
    private Handler handler = new Handler() {
        @Override
        public void handleMessage(Message msg) {
            super.handleMessage(msg);
            switch (msg.what) {
                case 1:
                    Toast.makeText(MainActivity.this, msg.obj.toString(), Toast.LENGTH_SHORT).show();
                    break;
                case 2:
                    Toast.makeText(MainActivity.this, msg.obj.toString(), Toast.LENGTH_SHORT).show();
                    break;
                case 3:
                    Toast.makeText(MainActivity.this, msg.obj.toString(), Toast.LENGTH_SHORT).show();
                    break;
                case 4:
                    Toast.makeText(MainActivity.this, msg.obj.toString(), Toast.LENGTH_SHORT).show();
                    break;
            }
        }
    };

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        init();
    }

    private void init() {
        edit_name = (EditText) findViewById(R.id.edit_name);
        edit_pwd = (EditText) findViewById(R.id.edit_pwd);
        sms = (EditText) findViewById(R.id.sms);
        get_sms = (Button) findViewById(R.id.get_sms);
        btn_login = (Button) findViewById(R.id.btn_login);
        get_sms.setOnClickListener(new GetSmsClickListener());
        btn_login.setOnClickListener(new LoginClickListener());
    }


    public class GetSmsClickListener implements View.OnClickListener {

        @Override
        public void onClick(View view) {
            name = edit_name.getText().toString().trim();
            pwd = edit_pwd.getText().toString().trim();
            if (name.equals("")) {
                edit_name.requestFocus();
            } else if (pwd.equals("")) {
                edit_pwd.requestFocus();
            } else {
                new Thread(new Runnable() {
                    @Override
                    public void run() {
                        try {
                            GetSmsCode(name, pwd);
                        } catch (Exception ex) {
                            ex.printStackTrace();
                        }
                    }
                }).start();
            }
        }
    }

    private void GetSmsCode(String name, String pwd) {

            GetCode(this.name, this.pwd, new GetCodeListener() {
                @Override
                public void getCodeSuccess(String s) {
                    Message msg = Message.obtain();
                    msg.obj = s;
                    msg.what = 1;
                    handler.sendMessage(msg);
                }

                @Override
                public void getCodeFail(String s) {
                    Message msg = Message.obtain();
                    msg.obj = s;
                    msg.what = 2;
                    handler.sendMessage(msg);
                }
            });
    }

    public class LoginClickListener implements View.OnClickListener {

        @Override
        public void onClick(View view) {
            final String code = sms.getText().toString().trim();
            name = edit_name.getText().toString().trim();
            pwd = edit_pwd.getText().toString().trim();
            if (name.equals("")) {
                edit_name.requestFocus();
            } else if (pwd.equals("")) {
                edit_pwd.requestFocus();
            } else if (code.equals("")) {
                sms.requestFocus();
            } else {
                new Thread(new Runnable() {
                    @Override
                    public void run() {
                        try {
                            CheckSmsCode(name, pwd, code);
                        } catch (Exception ex) {
                            ex.printStackTrace();
                        }
                    }
                }).start();
            }
        }
    }
    private void CheckSmsCode(String name, String pwd, String code) {
            CheckCode(this.name, this.pwd, code, new CheckCodeListener() {
                @Override
                public void checkCodeSuccess(String s) {
                    Message msg = Message.obtain();
                    msg.obj = s;
                    msg.what = 3;
                    handler.sendMessage(msg);
                }

                @Override
                public void checkCodeFail(String s) {
                    Message msg = Message.obtain();
                    msg.obj = s;
                    msg.what = 4;
                    handler.sendMessage(msg);
                }
            });

    }

}


步骤四(填写配置文件)

1.配置应用权限

    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.READ_PHONE_STATE"/>
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>


2.配置meta (appkey 从平台上新建的对应应用中来)

 <meta-data android:name="JPUSH_APPKEY" android:value="You JPUSH_APPKEY"/>

步骤五(调试)

1.点击获取密码按钮获取短信信息