Android开发之属于你的短信验证码(一)

不飞则已,一飞冲天;不鸣则已,一鸣惊人---------司马迁

最近工作又有新需求,要求用户在注册的时候需要通过手机验证码,这样做的目的是防止用户通过一个邮箱来随便的注册,那么好,今天我们就 一起来学习一下Android中的短信验证码这一个知识点。如有谬误,欢迎批评指正,如有疑问欢迎留言,谢谢

在说这个知识点前,我们首先来了解下聚合数据

一、聚合数据介绍

聚合数据是一家国内最大的基础数据API提供商,专业从事互联网数据服务。免费提供从天气查询、空气质量、地图坐标到金融基金、电商比价、违章查询等各个领域的安全、稳定和高效的数据。开发者可以免费试用聚合数据API进行移动APP的快速开发,免除数据收集、维护等环节,大大降低开发周期及成本。因此我们可以采用聚合数据给我提供好的一套东西来进行短信验证码的功能的添加。

首先我们要做准备工作,使用聚合数据主要分为以下步骤:

第一步,进入聚合数据官网注册一个账号

完成注册后进入,"个人中心"——>点击申请数据如下图所示

在上图输入你的手机号,然后你会收到验证码,在验证码处输入你收到的验证码点击申请

第二步,申请后你会看到一个Appkey,如果已经申请了可以按如下步骤查看你申请的Appkey

1.进入个人中心,点击我的数据,如下图所示

2.我们点击查看按钮就会看到我们申请的Appkey如下图所以,此Appkey非常重要

以上两步已经完成了Appkey的申请接着我们进行第三步,下载短信验证码的SDK

第三步下载短信验证码SDK

1.进入首页点击数据接口如下图所示

2.在左侧分类中找到SDK中心如下图所示

3.点击短信验证码SDK会进入到如下图所示的界面

到这里我们已经把SDK给下载好了,下面我们就该进入第四步,创建工程配置环境了

第四步,创建工程,配置环境

1.创建一个工程把我们下载的SDK里libs下的“armeabi文件”和"smscaptcha_v_1_4.jar"复制到我们工程的libs目录下

2.在AndroidManifest中添加开发密钥、所需权限等信息

(1)在application中添加开发密钥

  <meta-data
        android:name="JUHE_KEY"
        android:value="开发者 key" />

(2)添加所需权限

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

(3)在应用程序创建时初始化 SDK引用的Context全局变量

在这一步我们有两种方法

第一种在Activity中配置

public class MainActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //在使用SDK各组件之前初始化context信息,传入ApplicationContext
        //注意该方法要再setContentView方法之前实现
	/**
	* 初始化方法
	* @param context
	* @needFriends 是否需要好友功能
	*/
        CommonFun.initialize(getApplicationContext(),true);
        setContentView(R.layout.activity_main);
    }
}

下面这个注意是聚合数据文档给我们的建议,它建议我们把这个初始化工作放在Application中,因为程序运行首先会运行Application中的方法

注意:在SDK各功能组件使用之前都需要调用CommonFun.initialize(getApplicationContext(),true);,因此我们建议该方法放在Application的初始化方法中

所以我们就按它建议的方法,而不采用第一种方法这样我们需要创建一个Applicaiton类MyApplication如下

package com.example.android.sms;

import com.thinkland.sdk.util.CommonFun;

import android.app.Application;

public class MyApplication extends Application {

	@Override
	public void onCreate() {
		super.onCreate();
		CommonFun.initialize(getApplicationContext(), false);
	}
}

声明好Application后不要忘了在清单文件中配置

好了环境已经配置好了,我们来验证一下看看我们是否能收到短信

MainActivity的代码如下

package com.example.android.sms;

import com.thinkland.sdk.sms.SMSCaptcha;
import com.thinkland.sdk.util.BaseData;
import com.thinkland.sdk.util.CommonFun;

import android.os.Bundle;
import android.app.Activity;
import android.util.Log;
import android.view.Menu;
import android.widget.Toast;

public class MainActivity extends Activity {

	protected static final String TAG ="MainActivity";

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);

		setContentView(R.layout.activity_main);
		//初始化 SMSCaptcha对象在这个对象中有给我们发送短信验证码的方法
		SMSCaptcha smsCaptcha=SMSCaptcha.getInstance();
		//调用发送短信验证码的方法,在其中有一个回调

		/**
		  phone	手机号码
          callBack	返回结果回调方法.
		 */
		smsCaptcha.sendCaptcha("此处输入你的手机号",new BaseData.ResultCallBack() {

			@Override
			public void onResult(int code, String reason, String result) {

				   /*
				    code:返回码:
					服务器: 0 成功; 1 错误;
					本地: -2 本地网络异常; -3 服务器网络异常;-4 解析错误;-5初始化异常
					reason:返回信息 成功或错误原因.
					result:返回结果,JSON格式.错误或者无返回值时为空.*/

				if(code==0){
					Log.i(TAG,"code="+code);
					Log.i(TAG,"reason="+reason);
					Log.i(TAG,"result="+result);
				}
			}
		});
	}
}

返回结果如下:

并且手机接收到了短信,好了,这一篇就到这里了,这一篇主要是环境的搭建,下一篇就和大家一起讨论界面UI的实现,并验证输入的验证码是否是正确的验证码。

时间: 2024-10-19 16:57:47

Android开发之属于你的短信验证码(一)的相关文章

Android开发之属于你的短信验证码(二)

君子欲讷于言而敏于行.-<论语> 最近身体有点不适,才注意到身体真的是最重要的,以后不管我们有多忙,一定要按时休息,坚持跑步,锻炼身体,做些颈椎的操等等,不要让我们挣的钱拿来看病,大家一起来坚持啊,不要让年轻蒙蔽了我们的双眼. 在Android开发之属于你的短信验证码(一)我们主要讲了聚合数据,以及使用聚合数据开发短信验证码的准备工作及配置,这一篇我们将带来完整的功能的实现,以及界面UI的实现.如有谬误欢迎批评指正,如有疑问欢迎留言,谢谢 首先我们来看下界面第一个界面 我们在这个界面输入手机号

Android 项目开发实战:聚合数据短信验证码

聚合数据集成短信验证码官网: http://www.juhe.cn/docs/sdk/id/67 我根据文档集成了一个例子 效果: 源码下载:http://download.csdn.net/detail/zhaihaohao1/8917409 参考视频:http://www.jikexueyuan.com/course/495.html 文章来源:http://blog.csdn.net/zhaihaohao1/article/details/46980551

flask开发restful api系列(5)-短信验证码

我们现在开发app,注册用户的时候,不再像web一样,发送到个人邮箱了,毕竟个人邮箱在移动端填写验证都很麻烦,一般都采用短信验证码的方式.今天我们就讲讲这方面的内容. 首先,先找一个平台吧.我们公司找的容联云通讯这个平台,至少目前为止,用的还可以.先在容联上注册一下,然后创建一个应用,如下图所示: 我只勾选了2个功能,他们这边还有很多其他功能,暂时用不到,就不选了.好了,点击"确认",一个应用就弄好了,下面就尝试着写代码发短信吧. 容联为开发者提供了免费测试功能,但一个号码基本不会超过

【Python web 开发】云片网发送短信验证码

发送短信验证码 是要使用第三方服务的,运营商是不可能提供对外的个人发送短信服务功能,我们本身也没有能力去发送验证码,云片网是目前提供这种服务使用率较高的服务商之一 我们先来看下云片网国内单条发送短信的api 根据api 写了一个脚本,这个appkey 我还没申请 如何使用云片网发送短信? 1.首选要申请签名 + 填写 短信模板 2.签名审核,短信模板审核 3.一定要将自己的服务器的ip地址填写到  [云片网--设置--ip 白名单--添加服务器的IP地址] 不然会发送失败 本机测试查到本机的IP

Android开发,URI 如:发短信,发彩信,调用通讯录等

一.直接拨打电话,与三不同的是,这个直接拨打电话,而不是打开拨号界面 Uri uri = Uri.parse("tel:10086"); Intent intent = new Intent(Intent.ACTION_CALL, uri); 二.打开拨号界面,类型是Intent.ACTION_DIAL Uri uri = Uri.parse("tel:10086"); Intent intent = new Intent(Intent.ACTION_DIAL, uri); 三.打开一个网页,类

Android笔记(五十一) 短信验证码集成——mob平台

官方网站:www.mob.com 注册帐号,下载SDK,导入SDK就不说了,主要写一下简单集成如何使用,以后忘记了也可以翻着看看. 详细的可以参考官方文档: http://wiki.mob.com/android-%E7%9F%AD%E4%BF%A1sdk%E6%93%8D%E4%BD%9C%E5%9B%9E%E8%B0%83/ http://wiki.mob.com/sms-android-%E6%97%A0gui%E6%8E%A5%E5%8F%A3%E8%B0%83%E7%94%A8/ 步骤

Android第二十八期 - 第三方短信验证码

这次的例子用的是聚合数据的接口,代码已经整理好,有两种方式展现,效果如下:

android获取短信验证码并自动填写的实现一

android获取短信验证码并自动填写的实现一 android获取短信验证码并自动填写的实现一,有需要的朋友可以参考下. 现在的应用在注册登录或者修改密码中都用到了短信验证码,那在android中是如何实现获取短信验证码并自动填写的呢? 首先,需要要在manifest中注册接收和读取短信的权限: <uses-permission android:name="android.permission.RECEIVE_SMS"></uses-permission> &l

网站漏洞怎么修复对短信验证码被盗刷 该怎么办

公司的商城网站刚上线运营不到一个星期,网站就被***了,导致公司网站的短信通道被人恶意刷了几万条短信,损失较大,同时服务器也遭受到了前所未有的***.CPU监控看到网站在被盗刷短信验证码的时候,CPU一直保持在%95,网站甚至有些时候都无法打开. 网站被***后我登录了阿里云进去看了下,受到了很多阿里云提示的安全提醒,阿里云竟然没有给我拦截,我打电话咨询阿里云,阿里云竟然说我没有购买他们的云防火墙,阿里云客服还一再的推销让我们公司购买他们的云防火墙来防止短信验证码***,本身我也是做技术出身的,