我已成功使用 SmsManager
从我的应用发送包含验证码的短信和 SmsReceiver
.但这就像一条普通的 SMS 消息。我想知道我是否可以告诉设备 SMS 包含代码,因此用户的设备将自动打开弹出对话框询问用户他们是否会将代码复制到剪贴板。
我知道有几个应用程序也这样做。我的意思是,我从来没有捕捉到弹出对话框的屏幕截图,但我希望你能明白。 (弹出窗口来自 android/system,而不是来自 apk)
甚至按钮也显示在 SMS 中:
我们怎样才能做到这一点?
这是我当前 Activity 中的代码:
SmsManager sms = SmsManager.getDefault();
sms.sendTextMessage(val_no_hp, null, "Kode verifikasi aplikasi: " + kode_verifikasi, null, null);
kode_otp_rcv = new SmsReceiver(MainActivity.this);
IntentFilter kode_otp_filter = new IntentFilter("android.provider.Telephony.SMS_RECEIVED");
registerReceiver(kode_otp_rcv, kode_otp_filter);
这是我的 SmsReceiver 类:
public class SmsReceiver extends BroadcastReceiver {
private MainActivity act;
private static int PANJANG_KODE_VERIFIKASI = 4;
public SmsReceiver(MainActivity act) {
this.act = act;
}
@Override
public void onReceive(Context context, Intent intent) {
SmsMessage[] msgs = Telephony.Sms.Intents.getMessagesFromIntent(intent);
SmsMessage msg = msgs[0];
String body = msg.getMessageBody();
String kode = body.substring(body.length() - PANJANG_KODE_VERIFIKASI);
// currently my app submit verification automatically when SMS arrived
// act.verifikasiOTP(kode, msg.getOriginatingAddress());
}
}
最佳答案
这是不可能的,这个功能不是由android提供的,而是由应用程序开发人员自己构建的,逻辑是私有(private)的,并且因应用程序而异,一些应用程序可能会识别某些代码,而其他应用程序可能不会。
关于android - 使用 "copy code"按钮发送包含验证码的短信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50477707/