安卓的BroadcastReceiver不能接收任何广播事件 [英] Android BroadcastReceiver can't receive any broadcast events
本文介绍了安卓的BroadcastReceiver不能接收任何广播事件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我已经创建了一个BroadcastReceiver检测SD卡安装和卸载 事件,但是,我不能接受任何事件都: 这里的AndroidManifest.xml中:
<接收器的android:启用=真正的机器人:标签=SDCardMountReceiver机器人:出口=真正的机器人:NAME =xxx.broadcasts.SDCardBroadcastReceiver>
<意向滤光器>
<作用机器人:名称=android.content.Intent.ACTION_MEDIA_MOUNTED>< /作用>
< - 或lt;作用安卓!NAME =android.content.Intent.ACTION_MEDIA_UNMOUNTED/> - >< /意图滤光器>
< /接收器>
而SDCardMountReceiver类:
公共类SDCardBroadcastReceiver扩展的BroadcastReceiver {
公共SDCardBroadcastReceiver(){
超();
通信System.err.println(构造);
}
公共无效的onReceive(上下文的背景下,意图意图){
Log.d(SDCardBroadCastReceiver,接收+ intent.getAction());
通信System.err.println(乔纳森收到+ intent.getAction());
}
}
解决方案
的的意图的javadoc指定一个不同的动作:名称值。 使用android.intent.action.MEDIA_MOUNTED而不是android.content.Intent.ACTION_MEDIA_MOUNTED
I have created a BroadcastReceiver to detect SDCard mount and unmount event, however, I am not able to receive any events at all: here's the AndroidManifest.xml:
<receiver android:enabled="true" android:label="SDCardMountReceiver" android:exported="true" android:name="xxx.broadcasts.SDCardBroadcastReceiver">
<intent-filter>
<action android:name="android.content.Intent.ACTION_MEDIA_MOUNTED"></action>
<!-- or <action android:name="android.content.Intent.ACTION_MEDIA_UNMOUNTED" />--></intent-filter>
</receiver>
And the SDCardMountReceiver class:
public class SDCardBroadcastReceiver extends BroadcastReceiver {
public SDCardBroadcastReceiver() {
super();
System.err.println("constructor");
}
public void onReceive(Context context, Intent intent) {
Log.d("SDCardBroadCastReceiver", "receive " + intent.getAction());
System.err.println("jonathan receive " + intent.getAction());
}
}
解决方案
The Intent javadoc specifies a different action:name value. Use "android.intent.action.MEDIA_MOUNTED" instead of "android.content.Intent.ACTION_MEDIA_MOUNTED"
这篇关于安卓的BroadcastReceiver不能接收任何广播事件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文