0

Android の BROADCAST レシーバーに問題があります。すべてのレシーバーは正常に動作しますが、RECEIVED_BOOT_COMPLETED では動作しません。アイデア?

マニフェスト ファイル:

<uses-permission android:name="android.permission.RECEIVE_SMS" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.CALL_PHONE" />

<receiver
android:name="telint.sms.appClass.SMSReceiver"
android:enabled="true" >
<intent-filter android:priority="2147483647" >
    <action android:name="android.provider.Telephony.SMS_RECEIVED" />
    <action android:name="android.provider.Telephony.RECEIVE_BOOT_COMPLETED" />
    <action android:name="android.intent.action.ACTION_SHUTDOWN" />
    <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
    <action android:name="android.intent.action.PHONE_STATE" />
</intent-filter>
</receiver>

コード:

public class SMSReceiver extends BroadcastReceiver {
private static final String ACTION_RECEIVED = "android.provider.Telephony.SMS_RECEIVED";
private static final String ACTION_BOOT = "android.provider.Telephony.RECEIVE_BOOT_COMPLETED";
private static final String ACTION_INTERNET = "android.net.conn.CONNECTIVITY_CHANGE";
private static final String ACTION_SHUTDOWN = "android.intent.action.ACTION_SHUTDOWN";
     @Override
public void onReceive(Context context, Intent intent) {

     if (intent.getAction().equals(ACTION_BOOT)){
        **//NOT WORKING HERE.**
     }

}
4

2 に答える 2

3

アクション名が間違っていると思います。

交換するだけ

<action android:name="android.provider.Telephony.RECEIVE_BOOT_COMPLETED" />

<action android:name="android.intent.action.BOOT_COMPLETED" />

また、

private static final String ACTION_BOOT = "android.provider.Telephony.RECEIVE_BOOT_COMPLETED";

private static final String ACTION_BOOT = "android.intent.action.BOOT_COMPLETED";
于 2012-11-14T15:06:50.813 に答える
1

起動を完了するには、AndroidManifest ファイルに次の 2 つを追加する必要があります。

  • ブロードキャスト「レシーバー」の「インテント フィルター」の内部

    < アクション android:name="android.intent.action.BOOT_COMPLETED"/ >

  • 許可も取って

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

于 2013-11-10T10:33:11.307 に答える