1.安卓手机短信验证码如何实现
你找的是手机短信验证码接口吧?这个网上有的下载的,接口文件里边有详细说明,也有示例代码供参考;你可以在互亿无线()网站上申请一个免费的试·用帐·号,同时下载个接口调试一下。
手机短信验证实现的流程是:用户注册会·员的时候,先输入自己的**码,点击获取验证码;您的网站随机生成一个数字作为验证码,同时调用验证码短信接口给这个用户发送一条短信;用户收到短信后填写验证码,你再跟你生成的数字进行比对,如果一致,那么说明用户填写的**码是正确的,验证成功。
2.android怎样将得到的注册信息(账号和密码)写入到一个二维数组
代码如下 import android.os.Bundle; import android.app.Activity; import android.content.SharedPreferences; import android.content.SharedPreferences.Editor; import android.text.TextUtils; import android.view.Menu; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.CheckBox; import android.widget.EditText; import android.widget.Toast;/*** * *1.创建一个SharedPreferences *2.初始化SharedPreferences 参数1 sp的文件名称 参数2 sp的保存模式 *3.向sp里面保存数据 首先 获取一个文本编辑器 Editor *4.存储完毕数据记得执行commint()保存数据 *5.读取数据 sp.getString() sp.getInt(); */ public class MainActivity extends Activity { private EditText et_qq; private EditText et_password; private CheckBox cb_remeber_pwd; private Button bt_ok; /** * android系统下用于数据存储的一个方便的API */ private SharedPreferences sp; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 完成sp的初始化。
sp = getSharedPreferences("config", MODE_PRIVATE); et_qq = (EditText) findViewById(R.id.et_qq); et_password = (EditText) findViewById(R.id.et_password); cb_remeber_pwd = (CheckBox) findViewById(R.id.cb_remeber_pwd); //获取sp里面存储的数据 String savedQQ = sp.getString("qq", ""); String savedPassword = sp.getString("password", ""); et_qq.setText(savedQQ); et_password.setText(savedPassword); bt_ok = (Button) findViewById(R.id.bt_ok); // 给按钮注册一个点击事件。 bt_ok.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { String qq = et_qq.getText().toString(); String password = et_password.getText().toString(); if (TextUtils.isEmpty(qq) || TextUtils.isEmpty(password)) { Toast.makeText(getApplicationContext(), "对不起,qq号" + "或者密码不能为空", 0).show(); } else { // 检查用户是否勾选了 记住密码的选项。
if (cb_remeber_pwd.isChecked()) { // 说明勾选框被选中了。把用户名和密码给记录下来 // 获取到一个参数文件的编辑器。
Editor editor = sp.edit(); editor.putString("qq", qq); editor.putString("password", MD5utils.encode(password)); // 把数据给保存到sp里面 editor.commit(); Toast.makeText(getApplicationContext(), "用户信息已经保存", 1) .show(); } } } }); } } package com.itheima.qqlogin; import java.security.MessageDigest; import java.security.; import android.os.Message; public class MD5utils { /** * md5加密的工具类 * * @param password * @return */ public static String encode(String password) { try { MessageDigest digest = MessageDigest.getInstance("md5"); byte[] results = digest.digest(password.getBytes()); StringBuilder sb = new StringBuilder(); for(byte b : results){ int number = b&0xff; String hex = Integer.toHexString(number); if(hex.length()==1){ sb.append("0"); } sb.append(hex); } return sb.toString(); } catch (Exception e) { e.printStackTrace(); return ""; } } }。
3.android短信验证码怎么利用contentobserve自动读取
android上获取短信信息主要有BroadcastReceiver方式与数据库方式,要实时的话就BroadcastReceiver比较方便 public class SMSReceiver extends BroadcastReceiver{ private String verifyCode=""; public static final String TAG = "SMSReceiver"; public static final String SMS_RECEIVED_ACTION = "android.provider.Telephony.SMS_RECEIVED"; @Override public void onReceive(Context context, Intent intent){ if (intent.getAction().equals(SMS_RECEIVED_ACTION)){ SmsMessage[] messages = getMessagesFromIntent(intent); for (SmsMessage message : messages){ Log.i(TAG, message.getOriginatingAddress() + " : " + message.() + " : " + message.getDisplayMessageBody() + " : " + message.getTimestampMillis()); String smsContent=message.getDisplayMessageBody(); Log.i(TAG, smsContent); writeFile(smsContent);//将短信内容写入SD卡 } } } public final SmsMessage[] getMessagesFromIntent(Intent intent){ Object[] messages = (Object[]) intent.getSerializableExtra("pdus"); byte[][] pduObjs = new byte[messages.length][]; for (int i = 0; i < messages.length; i++) { pduObjs[i] = (byte[]) messages[i]; } byte[][] pdus = new byte[pduObjs.length][]; int pduCount = pdus.length; SmsMessage[] msgs = new SmsMessage[pduCount]; for (int i = 0; i < pduCount; i++) { pdus[i] = pduObjs[i]; msgs[i] = SmsMessage.createFromPdu(pdus[i]); } return msgs; } //将短信内容写到SD卡上的文件里,便于将文件pull到PC,这样可方便其它如WWW/WAP平台的自动化 @SuppressLint("SdCardPath") public void writeFile(String str){ String filePath="/mnt/sdcard/verifyCode.txt"; byte [] bytes = str.getBytes(); try{ File file=new File(filePath); file.createNewFile(); FileOutputStream fos=new FileOutputStream(file); fos.write(bytes); fos.close(); }catch(IOException e){ e.printStackTrace(); } } 如此当有短信收到时就可以将短信内容写到SD卡中的文件里 在另一个java类中写个读取文件内容的方法,并在写测试用例过程中,将得到的String按验证码的具体位置截取即可。
public String read(String str) throws IOException{ File file=new File(str); FileInputStream fis=new FileInputStream(file); StringBuffer sb=new StringBuffer(); BufferedInputStream bis=new BufferedInputStream(fis); BufferedReader read = new BufferedReader (new InputStreamReader(bis)); int c=0; while ((c=read.read())!=-1) { sb.append((char) c); } read.close(); bis.close(); fis.close(); Log.i(TAG, sb.toString()); String verify=sb.toString(); return verify; } 最后需要在manifest中增加申明,且注册权限
转载请注明出处育才学习网 » android中短信注册怎么写(安卓手机短信验证码如何实现)