Java SMS检索器API-如何以编程方式获取SMS?
我想在我的android项目中实现sms OTP接收器,该项目完全使用java而不是kotlin。请有人能帮我用java语言在android上做这件事吗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项目中尝试了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