3

我有一项通过 Intent.ACTION_BATTERY_CHANGED 获取电池更新的服务:

batteryFilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
batteryReceiver = new BatteryReceiver();

和接收器:

public void onReceive(Context context, Intent intent) {

    String action = intent.getAction();
    if(action.equals(Intent.ACTION_POWER_CONNECTED)) {
        onBattery = false;
        Log.w("battery","on power");
    }
    else if(action.equals(Intent.ACTION_POWER_DISCONNECTED)) {
        Log.w("battery","on battery");
        onBattery = true;
    }
}

通过 USB 调试安装应用程序时,这完全符合预期。在我将其发布到 Play 商店并从那里进行全新安装后,它不起作用。其他接收器也无法在应用程序中工作。该应用程序的其余部分似乎工作正常,只是没有广播接收器工作。什么可能导致这种情况发生?

这是 android 2.2,它是对已经在商店中的应用程序的更新,接收器在更新之前也可以正常工作。

4

1 回答 1

2

如果您在 Android 3.1+ 上运行,并且您没有手动运行其中一个组件(例如,从启动器启动一个活动),那么您的 manifest-registeredBroadcastReceiver将不会工作。

于 2012-08-13T18:31:08.203 回答