数据包管理器无法启动广播接收器
问题描述:
我可以使用下面的方式启动广播接收器吗?有人可以让它运行,但我不能。我不知道为什么。数据包管理器无法启动广播接收器
PackageManager pm = getApplicationContext().getPackageManager();
ComponentName componentName = new ComponentName("brd2.demo", "brd2.demo.BroadcastReceiver");
pm.setComponentEnabledSetting(componentName,
PackageManager.COMPONENT_ENABLED_STATE_ENABLED,
PackageManager.DONT_KILL_APP);
这是我的Android清单:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="brd2.demo"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk android:minSdkVersion="7" />
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<activity
android:label="@string/app_name"
android:name="brd2.demo.BroadcastReceiverDemo2Activity" >
<intent-filter >
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<receiver android:name="brd2.demo.CallBroadcastReceiver">
<intent-filter >
<action android:name="android.intent.action.NEW_OUTGOING_CALL" />
</intent-filter>
<intent-filter >
<action android:name="android.intent.action.PHONE_STATE" />
</intent-filter>
</receiver>
</application>
</manifest>
请帮帮我。
答
如果您正在照顾在接收器中添加适当的操作。
如果您的接收器类是 扩展广播接收器,那么系统将小心地打电话给您的广播接收器。
您不需要手动启动广播接收器(直到并且除非您正在创建自定义广播)。
在你的情况,如果CallBroadcastReceiver
正在扩大BroadcastReceiver
,如果你有在onReceive
方法写入适当的逻辑,那么这个类会自动获得当你做出新的呼叫,或者如果电话铃响调用。
希望得到这个帮助。