gpt4 book ai didi

java - 短信广播接收器未注册

转载 作者:行者123 更新时间:2023-12-01 15:34:31 27 4
gpt4 key购买 nike

Possible Duplicate:
Android SMS Receiver not working

我正处于一个简单应用程序的初始阶段,用于拦截来自特定号码的短信。此时,我想要实现的只是在 onReceive 方法被触发时 toast ,但是我没有得到任何东西。

list

    <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.*****"
android:versionCode="1"
android:versionName="1.0" >

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

<uses-sdk android:minSdkVersion="8" />

<application android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<receiver android:name=".Receiver">
<intent-filter>
<action android:name="android.provider.Telephony.SMS_RECEIVED"/>
</intent-filter>
</receiver>
</application>
</manifest>

和接收者

public class Receiver extends BroadcastReceiver {

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

@Override
public void onReceive(Context context, Intent intent) {
Toast.makeText(context, "Received!", Toast.LENGTH_LONG).show();

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) {
Toast.makeText(context, "Received a message!", Toast.LENGTH_LONG).show();
//abortBroadcast();
}
}
}
}


}

更新 1创建 Activity 并启动应用程序后,接收器将被注册。不过,我需要一种让接收器自动注册的方法。应用程序没有任何 Activity ,只有 onReceive 方法拦截消息。这可能吗?也许使用启动完成 Intent ?

更新2使用 BOOT_COMPLETED 的接收器来启动注册短信接收器的服务解决了这个问题。谢谢。

最佳答案

您的解决方案有缺陷。它适用于 Android 3.0 及更早版本。对于 Android 3.1,您必须有一个用户至少启动一次的 Activity,才能启用您的应用。

关于java - 短信广播接收器未注册,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9104727/

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