2

새 응용 프로그램이 설치되면, 내 브로드 캐스트 리시버는 간단한 필터를 사용하여 패키지 데이터를 가져옵니다안드로이드 : ACTION_PACKAGE_ADDED받지 (XPERIA SO-03D)

filter = new IntentFilter(); 
filter.addAction(Intent.ACTION_PACKAGE_ADDED); 
filter.addAction(Intent.ACTION_PACKAGE_REPLACED); 
filter.addDataScheme("package"); 

receiver = new newPackageReceiver(); 
registerReceiver(receiver, filter); 

... 

public class newPackageReceiver extends BroadcastReceiver { 
    @Override 
    public void onReceive(Context context, Intent intent) { 

     final String info = intent.getData().toString(); 
      ... 
      } 
    } 

브로드 캐스트 리시버는 그러나 ... 대부분의 장치로 호출, 이 device (일본어로만, 죄송합니다), onReceive는 호출되지 않습니다.

  • 모델 : 소니 SO-03D
  • 안드로이드 버전 : 장치에 사용할 수 4.0.4

업데이트 없음 .... 어떤 아이디어?

답변

1

아마도 도움이 될 것입니다. 리시버를 매니페스트에 추가하려고합니다.

<receiver android:name=".YourReceiver"> 
    <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> 

그리고 YourReceiver 클래스의

:

public class YourReceiver extends BroadcastReceiver { 
    @Override 
    public void onReceive(Context context, Intent intent) { 
     String act = intent.getAction(); 
     if (Intent.ACTION_PACKAGE_ADDED.equals(act) || Intent.ACTION_PACKAGE_REMOVED.equals(act)) { 
      //Do what you want 
     } 
} 

나는이 도움이 될 희망하지만 문제는이 장치의 ROM을 것 같다.