android - 使用 "copy code"按钮发送包含验证码的短信

标签 android smsmanager

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

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

甚至按钮也显示在 SMS 中:

enter image description here

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

这是我当前 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/

相关文章:

java - BroadcastReceiver 仅触发一次

未收到 Android 短信管理器发送报告和已发送报告

android - 将短信插入收件箱 : android

java - 如何从 ListView 中选择特定文件

java - 使用 FirebaseDatabase 检索数据

java - 为什么我们需要调用 "build()"让 Uri.Builder 对象传入 URL 构造函数?

android - SmsManager 的字符数限制是多少?

java - 如何从可选择的 TextView 中获取文本字符串?

java - 反序列化图像对象数组

android - 如何记录所有已发送的短信以及包裹名称?