gpt4 book ai didi

android - BroadcastReceiver 不适用于 SMS_RECEIVED

转载 作者:太空狗 更新时间:2023-10-29 15:06:19 25 4
gpt4 key购买 nike

我正在尝试使用此代码以编程方式在 Activity 上注册 BroadcastReceiver

br=new BroadcastReceiver() {                        
private static final String SMS_RECEIVED = "android.provider.Telephony.SMS_RECEIVED";
private static final String TAG = "cyb";

@Override
public void onReceive(Context context, Intent intent) {
Toast.makeText(context, "ok", Toast.LENGTH_LONG).show();
Log.e(TAG, "Intent recieved: " + intent.getAction());

if (intent.getAction().equals(SMS_RECEIVED)) {
Bundle bundle = intent.getExtras();
if (bundle != null) {
Object[] pdus = (Object[])bundle.get("pdus");
final SmsMessage[] messages = new SmsMessage[pdus.length];
for (int i = 0; i < pdus.length; i++) {
messages[i] = SmsMessage.createFromPdu((byte[])pdus[i]);
}
if (messages.length > -1) {
Log.e(TAG, "Message recieved: " + messages[0].getMessageBody());
}
}
}
}
};

IntentFilter inf=new IntentFilter("android.provider.Telephony.SMS_RECEIVED");
inf.setPriority(999);
registerReceiver(br, inf);

我还向 AndroidManifest.xml 添加了此权限

 <uses-permission android:name="android.permission.RECEIVE_SMS"/>

当收到新短信时,我的应用程序不会收到任何通知。我正在使用带环聊和 GoSMS 的 Android 4.2

更新 2:

卸载 GOSMS 后它可以正常工作。但我想接收 SMS_RECEIVED Intent 操作,即使用户是否安装了 GoSMS 应用程序。这可能吗?任何替代解决方案?

最佳答案

您还需要实现 MMS 接收器 + HeadlessSmsSendService +ComposeSmsActivity

详情见链接: http://android-developers.blogspot.fr/2013/10/getting-your-sms-apps-ready-for-kitkat.html

关于android - BroadcastReceiver 不适用于 SMS_RECEIVED,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21660151/

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