7

我想在手机放入充电器后做点什么。所以我创建了ChargingOnReciever

public class ChargingOnReceiver extends BroadcastReceiver { 
    public void onReceive(Context context, Intent intent) { 
        context.startActivity(someActivity);
        Log.d(TAG, "Phone was connected to power");
    } 
} 

我想让我的接收器听android.intent.action.ACTION_POWER_CONNECTED,所以我把它放到清单中:

<reciever android:name=".ChargingOnReceiver"
          android:enabled="true"
          android:exported="true">
    <intent-filter>
        <action android:name="android.intent.action.ACTION_POWER_CONNECTED" />
    </intent-filter>
</reciever>

但是ChargingOnReceiver当我把我的 G1 放到充电器上(通过 USB 线连接到我的笔记本电脑)时,显然没有启动。任何帮助深表感谢。

4

4 回答 4

27

是接收器,不是接收器!我花了 5 个小时才找到这个愚蠢的错误。我认为 Android Eclipse 插件应该在清单 xml 中进行一些语法检查。

于 2010-01-20T22:51:46.123 回答
7

对于任何试图为“android.intent.action.ACTION_POWER_CONNECTED”和“android.intent.action.ACTION_POWER_DISCONNECTED”注册接收器的人,我想补充一下:

作为 Android 8.0(API 级别 26)后台执行限制的一部分,以 API 级别 26 或更高级别为目标的应用不能再在其清单中为隐式广播注册广播接收器。然而,一些广播目前不受这些限制。应用程序可以继续为豁免广播注册侦听器,无论应用程序的目标是什么 API 级别。

上述两个广播不再在这些豁免广播的列表中。请参考以下文档:

https://developer.android.com/guide/components/broadcast-exceptions

于 2018-10-31T13:54:34.433 回答
0
  1. 不要从BroadcastReceiver.

  2. 您在插入 USB 电缆时检查过 LogCat 以查看是否有任何记录的消息可以解释您的问题?

于 2010-01-20T19:53:49.480 回答
-3

在文档中,android.intent.action.POWER_CONNECTED不带ACTION_.

于 2011-02-20T21:59:29.487 回答