为了账号安全,请及时绑定邮箱和手机立即绑定

SMS Retriever API - 如何以编程方式获取 SMS?

SMS Retriever API - 如何以编程方式获取 SMS?

德玛西亚99 2022-07-20 19:35:27
我想在我的 android 项目中实现 sms OTP 接收器,它完全是在 java 而不是 kotlin 中。请任何人都可以帮助我使用java语言在android中做这件事吗?我在我的 android 项目中尝试了 kotlin 代码,但我的 UI 功能基于 java 代码,请帮助我。
查看完整描述

1 回答

?
精慕HU

TA贡献1845条经验 获得超8个赞

尝试将其用于 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"

  }

}


查看完整回答
反对 回复 2022-07-20
  • 1 回答
  • 0 关注
  • 124 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号