android - 使用“复制代码”按钮发送包含验证码的短信
问题描述
我已经设法使用SmsManager
和发送包含来自我的应用程序的验证码的短信SmsReceiver
。但这就像一条普通的 SMS 消息。我想知道我是否可以告诉设备 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());
}
}
解决方案
我这样发送验证短信:
code: 123456 Your code from Example.com
重要的文字是:code: 1111
在开头
在安卓手机中,启用了自动复制。
推荐阅读
- python - 有没有其他方法可以发布数据?
- linq - Linq with join - 获取单个结果
- python - 我在尝试抓取 tiktok api 时不断出错
- networking - 环拓扑中环主和恢复时间的定义是什么
- azure-cosmosdb - 注册时如何将 Azure AD B2C 用户保存到 Cosmos DB?
- reactjs - TypeScript - 元素隐式具有“任何”类型,因为“故事文件”类型的表达式不能用于索引类型“{}”
- javascript - 打字稿模拟在 Jest 中命名为导出单例类
- python - 无法使用 argparse 从 sqlite3 读取数据
- django - Celery-beat 不适用于每日时间表
- ruby - React Native 命令“npx react-native start”不起作用