SMS Retriever API - 如何以编程方式获取 SMS?
Posted
技术标签:
【中文标题】SMS Retriever API - 如何以编程方式获取 SMS?【英文标题】:SMS Retriever API - how to programmatically get SMSs? 【发布时间】:2019-07-26 16:35:20 【问题描述】:我想在我的 android 项目中实现 sms OTP 接收器,该项目完全使用 java 而不是 kotlin。请问谁能帮我用java语言在android中做这件事?
我在我的 android 项目中尝试了 kotlin 代码,但我的 UI 功能是基于 java 代码的,请帮助我。
【问题讨论】:
您是说 SMS Retirever 吗?请阅读:developers.google.com/identity/sms-retriever/request 是的,但我不知道如何在没有任何 kotlin 代码的纯 java 中实现它 @StanleyKou 分享的链接完全是用java而不是kotlin编写的 【参考方案1】:尝试在 Java 中使用它
public class SmsBroadcastReceiver extends BroadcastReceiver
public static final String SMS_BUNDLE = "pdus";
public void onReceive(Context context, Intent intent)
Bundle intentExtras = intent.getExtras();
if (intentExtras != null)
Object[] sms = (Object[]) intentExtras.get(SMS_BUNDLE);
String smsMessageStr = "";
for (int i = 0; i < sms.length; ++i)
SmsMessage smsMessage = SmsMessage.createFromPdu((byte[]) sms[i]);
String smsBody = smsMessage.getMessageBody().toString();
String address = smsMessage.getOriginatingAddress();
smsMessageStr += "SMS From: " + address + "\n";
smsMessageStr += smsBody + "\n";
Toast.makeText(context, smsMessageStr, Toast.LENGTH_SHORT).show();
//this will update the UI with message
SmsActivity inst = SmsActivity.instance();
inst.updateList(smsMessageStr);
尝试在 Kotlin 中使用类似的东西
class SmsBroadcastReceiver:BroadcastReceiver()
fun onReceive(context:Context, intent:Intent)
val intentExtras = intent.getExtras()
if (intentExtras != null)
val sms = intentExtras.get(SMS_BUNDLE) as Array<Any>
val smsMessageStr = ""
for (i in sms.indices)
val smsMessage = SmsMessage.createFromPdu(sms[i] as ByteArray)
val smsBody = smsMessage.getMessageBody().toString()
val address = smsMessage.getOriginatingAddress()
smsMessageStr += "SMS From: " + address + "\n"
smsMessageStr += smsBody + "\n"
Toast.makeText(context, smsMessageStr, Toast.LENGTH_SHORT).show()
//this will update the UI with message
val inst = SmsActivity.instance()
inst.updateList(smsMessageStr)
companion object
val SMS_BUNDLE = "pdus"
【讨论】:
以上是关于SMS Retriever API - 如何以编程方式获取 SMS?的主要内容,如果未能解决你的问题,请参考以下文章
使用 SMS Retriever API Android 的 OTP/SMS 自动获取问题
为啥 SMS Retriever API 在发布模式下不起作用?
如何使用 Google App 签名为 Sms Retriever 生成 11 个字符的哈希密钥