【问题标题】:Android: Why I am not receiving the BOOT_COMPLETED intent?Android:为什么我没有收到 BOOT_COMPLETED 意图?
【发布时间】:2013-05-17 12:10:18
【问题描述】:

我正在物理设备上进行测试 (SAMSUNG ACE GT S5830i)

但我没有收到 BOOT_COMPLETED 意图,因此服务不是 Receiver is not started

这是我正在使用的代码。

public class BootCompleteReceiver extends BroadcastReceiver {
static final String TAG = "InfoService.BroadcastReceiver";

@Override
public void onReceive(Context context, Intent intent) {
  if (intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED)) {
    Log.e(TAG, "System boot notification received.");
    Intent service = new Intent(context, InfoService.class);
    context.startService(service);
  } else {
    Log.e(TAG, "Intent received: " + intent);
  }
}
}

这是清单

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
  package="com.appengine.paranoid_android.lost"
  android:versionCode="2"
  android:versionName="1.1">
<application android:icon="@drawable/ic_launcher"
        android:label="@string/app_name">
    <activity android:name=".InfoSetup"
              android:label="@string/activity_name"
              android:launchMode="singleTask"
              android:clearTaskOnLaunch="true">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

    <activity android:name=".LockScreen"
              android:label="@string/activity_name"
              android:launchMode="singleInstance"
              android:clearTaskOnLaunch="true"
              android:theme="@android:style/Theme.NoTitleBar">
    </activity>

    <service android:name=".InfoService"
        android:label="@string/service_name"/>

    <receiver android:name=".BootCompleteReceiver">
        <intent-filter>
            <action android:name="android.intent.action.BOOT_COMPLETED"/>
        </intent-filter>
        <intent-filter>
            <action android:name="android.intent.action.PACKAGE_ADDED"/>
            <action android:name="android.intent.action.PACKAGE_CHANGED"/>
            <action android:name="android.intent.action.PACKAGE_REMOVED"/>
            <data android:scheme="package"/>
        </intent-filter>
    </receiver>
</application>
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
<uses-permission android:name="android.permission.WRITE_SETTINGS"/>
<uses-permission android:name="android.permission.READ_CONTACTS"/>
<uses-permission android:name="android.permission.DISABLE_KEYGUARD"/>
<!-- <uses-permission android:name="android.permission.DISABLE_KEYGUARD"/> -->

【问题讨论】:

  • 您的标签显示InfoService.BroadcastReceiver。你确定你的接收者不是内部类吗?
  • @PankajKumar 谢谢Pankaj,不是。

标签: android broadcastreceiver boot intentfilter


【解决方案1】:

尝试为&lt;receiver android:name=".BootCompleteReceiver"&gt;添加包的完整路径

<receiver android:name="com.appengine.paranoid_android.lost.BootCompleteReceiver">

【讨论】:

    猜你喜欢
    • 2011-04-25
    • 1970-01-01
    • 2011-06-30
    • 1970-01-01
    • 2019-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多