使用"复制代码"发送包含验证码的短信。按键

时间:2018-05-22 23:17:03

标签: android smsmanager

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

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

即使按钮也显示在SMS内:

enter image description here

我们如何实现这一目标?

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

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());
    }
}

3 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

我像这样发送我的验证短信: code: 123456 Your code from Example.com

重要的文字是:开头的code: 1111

在安卓手机中,自动复制已启用。

答案 2 :(得分:-1)

我知道这个问题很久了,但我回答:) 我认为这取决于手机和操作系统,但顺便说一下,如果您编写这样的代码:

:1234

PS:1234 是示例代码

如果手机支持,会弹出复制代码。