数据包管理器无法启动广播接收器

问题描述:

我可以使用下面的方式启动广播接收器吗?有人可以让它运行,但我不能。我不知道为什么。数据包管理器无法启动广播接收器

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方法写入适当的逻辑,那么这个类会自动获得当你做出新的呼叫,或者如果电话铃响调用。

希望得到这个帮助。