gpt4 book ai didi

java - Android:将值从 Activity 传递到广播接收器

转载 作者:太空宇宙 更新时间:2023-11-04 12:08:32 24 4
gpt4 key购买 nike

首先,抱歉我的语法不好。我正在使用广播接收器开发自动回复消息应用程序,当我可以从 Activity 接收到广播接收器的值时,我遇到问题,自动回复将无法工作。但如果我没有从 Activity 中获得值(value),那么它就可以工作。这是我的 Activity 代码,我把它放在 onSensorChanged()

Intent i = new Intent("my.action.string");
i.putExtra("apaan", lala);
sendBroadcast(i);

这是我的广播接收器类

public class AutoReply extends BroadcastReceiver{

private static final String SMS_RECEIVED = "android.provider.Telephony.SMS_RECEIVED";

@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
Log.i("message", "Broadcast Received: " +action);

if (action.equals(SMS_RECEIVED) && action.equals("my.action.string")) {
Bundle bundle = intent.getExtras();
String state = bundle.getString("apaan");

if (bundle != null) {
Object[] pdus = (Object[]) bundle.get("pdus");
final SmsMessage[] sms = new SmsMessage[pdus.length];
String isiSMS = "", noPengirim = "";
for (int i = 0; i < pdus.length; i++) {
sms[i] = SmsMessage.createFromPdu((byte[]) pdus[i]);
isiSMS = sms[i].getMessageBody();//mengambil isi pesan dari pengirim
noPengirim = sms[i].getOriginatingAddress();//mengambil no pengirim
}

String message = state;//isi balasan autoreplay

SmsManager smsSend = SmsManager.getDefault();
smsSend.sendTextMessage(noPengirim, null, message, null, null);
}
}
}

这是我的 list

<receiver android:name=".AutoReply" android:enabled="true">
<intent-filter>
<action android:name="android.provider.Telephony.SMS_RECEIVED" />
<action android:name="my.action.string" />
</intent-filter>
</receiver>

最佳答案

操作永远不会同时是 android.provider.Telephony.SMS_RECEIVEDmy.action.string

更改此:

if (action.equals(SMS_RECEIVED) && action.equals("my.action.string")) {

对此:

if (action.equals(SMS_RECEIVED) || action.equals("my.action.string")) {

此外,您没有在手动创建的 Intent 中发送 pdus,因此当您调用 bundle.get("pdus") 时,它将返回 null。然后,当您调用 pdus.length 时,它将抛出 NullPointerException。

关于java - Android:将值从 Activity 传递到广播接收器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40096780/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com