如何将安全代码发送到用户设备
how get security code sended to user device
如何获取通过短信发送到用户设备的安全码并在我的应用程序中设置到我的 editText?
例如在 whats 应用程序中输入 phone 号码并获取安全代码后,应用程序自动将安全代码设置为应用程序并注册用户
请帮助我并展示这个工作的例子
在 activity Oncreate()
IntentFilter intentFilter = null;
intentFilter = new IntentFilter(Telephony.Sms.Intents.SMS_RECEIVED_ACTION);
registerReceiver(smsReceiver, intentFilter);
现在把这个广播放在同一个activity:
private BroadcastReceiver smsReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
Bundle myBundle = intent.getExtras();
SmsMessage[] messages = null;
if (myBundle != null) {
Object[] pdus = (Object[]) myBundle.get("pdus");
messages = new SmsMessage[pdus.length];
for (int i = 0; i < messages.length; i++) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
String format = myBundle.getString("format");
messages[i] = SmsMessage.createFromPdu((byte[]) pdus[i], format);
} else {
messages[i] = SmsMessage.createFromPdu((byte[]) pdus[i]);
}
/*strMessage += "SMS From: " + messages[i].getOriginatingAddress();
strMessage += " : ";
strMessage += messages[i].getMessageBody();
strMessage += "\n";*/
}
if (messages[0].getMessageBody().substring(11).contains("OTP")){
final Pattern p = Pattern.compile( "(\d{4})" );
final Matcher m = p.matcher(messages[0].getMessageBody().substring(11));
if ( m.find() ) {
Log.e("SMSotp", String.valueOf(m.group()));
}
String[] tet = m.group().split("(?!^)");
otp1.setText(tet[0]);
otp2.setText(tet[1]);
otp3.setText(tet[2]);
otp4.setText(tet[3]);
}
}
}
};
现在,在清单中添加:
<uses-permission android:name="android.permission.RECEIVE_SMS"/>
如何获取通过短信发送到用户设备的安全码并在我的应用程序中设置到我的 editText? 例如在 whats 应用程序中输入 phone 号码并获取安全代码后,应用程序自动将安全代码设置为应用程序并注册用户
请帮助我并展示这个工作的例子
在 activity Oncreate()
IntentFilter intentFilter = null;
intentFilter = new IntentFilter(Telephony.Sms.Intents.SMS_RECEIVED_ACTION);
registerReceiver(smsReceiver, intentFilter);
现在把这个广播放在同一个activity:
private BroadcastReceiver smsReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
Bundle myBundle = intent.getExtras();
SmsMessage[] messages = null;
if (myBundle != null) {
Object[] pdus = (Object[]) myBundle.get("pdus");
messages = new SmsMessage[pdus.length];
for (int i = 0; i < messages.length; i++) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
String format = myBundle.getString("format");
messages[i] = SmsMessage.createFromPdu((byte[]) pdus[i], format);
} else {
messages[i] = SmsMessage.createFromPdu((byte[]) pdus[i]);
}
/*strMessage += "SMS From: " + messages[i].getOriginatingAddress();
strMessage += " : ";
strMessage += messages[i].getMessageBody();
strMessage += "\n";*/
}
if (messages[0].getMessageBody().substring(11).contains("OTP")){
final Pattern p = Pattern.compile( "(\d{4})" );
final Matcher m = p.matcher(messages[0].getMessageBody().substring(11));
if ( m.find() ) {
Log.e("SMSotp", String.valueOf(m.group()));
}
String[] tet = m.group().split("(?!^)");
otp1.setText(tet[0]);
otp2.setText(tet[1]);
otp3.setText(tet[2]);
otp4.setText(tet[3]);
}
}
}
};
现在,在清单中添加:
<uses-permission android:name="android.permission.RECEIVE_SMS"/>