Java SMS检索器API-如何以编程方式获取SMS?

Java SMS检索器API-如何以编程方式获取SMS?,java,android,android-sms,Java,Android,Android Sms,我想在我的android项目中实现sms OTP接收器,该项目完全使用java而不是kotlin。请有人能帮我用java语言在android上做这件事吗 我在android项目中尝试了kotlin代码,但我的UI功能是基于java代码的,请帮助我。尝试将其用于java public class SmsBroadcastReceiver extends BroadcastReceiver { public static final String SMS_BUNDLE = "pdus";

我想在我的android项目中实现sms OTP接收器,该项目完全使用java而不是kotlin。请有人能帮我用java语言在android上做这件事吗


我在android项目中尝试了kotlin代码,但我的UI功能是基于java代码的,请帮助我。

尝试将其用于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);
        }
    }
}
公共类SmsBroadcastReceiver扩展广播接收器{
公共静态最终字符串SMS_BUNDLE=“PDU”;
公共void onReceive(上下文、意图){
Bundle intentExtras=intent.getExtras();
if(intentExtras!=null){
Object[]sms=(Object[])intentExtras.get(sms_BUNDLE);
字符串SMSMessagester=“”;
对于(int i=0;i
尝试对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"
  }
}
类SmsBroadcastReceiver:BroadcastReceiver(){
接收乐趣(上下文:上下文,意图:意图){
val intentExtras=intent.getExtras()
if(intentExtras!=null)
{
val sms=intentExtras.get(sms_BUNDLE)作为数组
val SMSMessagester=“”
对于(sms索引中的i)
{
val smsMessage=smsMessage.createFromPdu(sms[i]作为ByteArray)
val smsBody=smsMessage.getMessageBody().toString()
val address=smsMessage.getOriginatingAddress()
SMSMessagester+=“短信发件人:“+地址+”\n”
SMSMessagester+=smsBody+“\n”
}
Toast.makeText(上下文、SMSMessagester、Toast.LENGTH_SHORT.show())
//这将使用消息更新UI
val inst=SmsActivity.instance()
仪器更新列表(SMSMessagester)
}
}
伴星{
val SMS_BUNDLE=“PDU”
}
}

你是说短信退休者吗?请阅读:是的,但我不知道如何在没有kotlin代码的情况下用纯java实现@StanleyKou共享的链接完全是用java编写的,而不是kotlin