2012-07-15 1 views

답변

3

당신은 패키지가 새로운 패키지가 추가 될 때 통지를보기 위해 방송 수신기의 onReceive에서 Service(i.e IntentService)를 시작 후, 설치 및 제거 이벤트를 받기위한 PACKAGE_INSTALLPACKAGE_ADDED 수신기를 등록 할 수 있습니다. Manifest.xml에서

: PackageReceiver에서

<receiver android:name=".PackageReceiver"> 
     <intent-filter> 
      <action android:name="android.intent.action.PACKAGE_INSTALL" /> 
      <action android:name="android.intent.action.PACKAGE_ADDED" /> 
      <data android:scheme="package"/> 
     </intent-filter> 
    </receiver> 

: 당신은 또한 서비스 내가 좀 세 번째 방법이 필요

br = new BroadcastReceiver() { 

     @Override 
     public void onReceive(Context context, Intent intent) { 
      // TODO Auto-generated method stub 
      //SHOW notification here or Start Notification Service 
     } 
    }; 
    IntentFilter intentFilter = new IntentFilter(); 
    intentFilter.addAction(Intent.ACTION_PACKAGE_ADDED); 
    intentFilter.addAction(Intent.ACTION_PACKAGE_INSTALL); 
    intentFilter.addDataScheme("package"); 
    registerReceiver(br, intentFilter); 
+0

에 동적으로 수신기를 등록 할 수 있습니다

public class PackageReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { if (intent.getAction().equals(Intent.PACKAGE_INSTALL)) { //START YOUR SERVICE HERE } } } 

OR! 고맙습니다! :) –

+0

위의 코드를 시도했는데 오류가 발견되었습니다. 문제는 서비스 클래스 내에 인 텐트 필터를 만들고 추가 할 수 없다는 것입니다. 거기에 어떤 이유가 있습니까? –

+0

서비스 클래스 내에 인 텐트 필터를 생성하고 추가 할 수 없다. 서비스에 impororing import android.content.IntentFilter; 패키지가 있음을 확인하십시오. –

관련 문제