Send SMS containing verification code with a "copy code" button

Tau*_*nda 6 android smsmanager

我已设法使用SmsManager和发送包含来自我的应用的验证码的短信SmsReceiver。但这就像一条普通的短信。我想知道我是否可以告诉设备 SMS 包含代码,因此用户的设备将自动打开弹出对话框,询问用户是否将代码复制到剪贴板。

我知道有几个应用程序也这样做。我的意思是我从来没有捕捉过弹出对话框的屏幕截图,但我希望你能明白。(弹出窗口来自 android/system,而不是来自 apk)

甚至按钮也显示在短信中:

在此处输入图片说明

我们怎样才能做到这一点?

这是我当前活动中的代码:

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);
Run Code Online (Sandbox Code Playgroud)

这是我的 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());
    }
}
Run Code Online (Sandbox Code Playgroud)

Suh*_*omy 2

这是不可能的,此功能不是由 android 提供的,而是由应用程序开发人员自己构建的,逻辑是私有的并且因应用程序而异,某些应用程序可能会识别某些代码,而其他应用程序可能不会。