我已设法使用SmsManager
和SmsReceiver
从我的应用发送包含验证码的短信。但它就像普通的短信一样。我想知道我是否可以告诉设备SMS包含代码,因此用户的设备会自动打开弹出对话框,询问用户是否将代码复制到剪贴板。
我知道有几个应用程序也这样做。我从未捕捉到弹出对话框的截图,但我希望你明白这个想法。 (弹出窗口来自android / system,而不是来自apk)
即使按钮也显示在SMS内:
我们如何实现这一目标?
这是我活动中的当前代码:
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());
}
}
答案 0 :(得分:0)
这是不可能的,这个功能不是由android提供的,是由应用程序开发人员自己构建的,逻辑是私有的,因应用程序而异,有些应用程序可能会识别某些代码,而其他应用程序可能不会。
答案 1 :(得分:0)
我像这样发送我的验证短信:
code: 123456 Your code from Example.com
重要的文字是:开头的code: 1111
在安卓手机中,自动复制已启用。
答案 2 :(得分:-1)
我知道这个问题很久了,但我回答:) 我认为这取决于手机和操作系统,但顺便说一下,如果您编写这样的代码:
:1234
PS:1234 是示例代码
如果手机支持,会弹出复制代码。