3

新しいパッケージが追加されたときに通知を表示したい。そして、マニフェスト ファイルに必要なコードを見つけました。私が理解できないのは、サービス内でブロードキャストをキャッチする方法です。どうやってやるの?

4

1 に答える 1

6

パッケージのインストールおよびアンインストールイベントを受信するためのPACKAGE_INSTALLおよびレシーバーを登録してから、新しいパッケージが追加されたときに通知を表示するためのブロードキャストレシーバーの開始を行うことができます。PACKAGE_ADDEDService( i.e IntentService)onReceive

Manifest.xmlの場合:

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

PackageReceiver内:

public class PackageReceiver extends BroadcastReceiver {

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

}

または、サービスに受信者を動的に登録することもできます

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);
于 2012-07-15T05:20:07.700 に答える