2012-03-16 2 views
1

브로드 캐스트 리시버를 시작하려면 다음 방법을 사용할 수 있습니까? 어떤 사람은 달리기를 할 수는 있지만 그렇게 할 수는 없습니다. 나는 이유를 모른다.패킷 관리자가 브로드 캐스트 리시버를 시작할 수 없습니다.

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); 

이 내 안드로이드 매니페스트입니다 :

<?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> 

Pls는을 도와.

답변

1

수신기에 적절한 조치를 추가 할 때주의하십시오.

수신자 클래스가 브로드 캐스트 리시버 인 경우 브로드 캐스트 리시버를 호출 할 때주의해야합니다.

브로드 캐스트 리시버를 수동으로 시작할 필요가 없습니다 (사용자 지정 브로드 캐스트를 만들 때까지).

CallBroadcastReceiverBroadcastReceiver으로 확장되고 onReceive 메소드에서 적절한 로직을 작성한 경우 새로 전화를 걸거나 전화벨이 울리면이 클래스가 자동으로 호출됩니다.

희망 도움말.

관련 문제