androidリスニングappインストールとアンインストール

3456 ワード

多くの場合、プログラムがインストールまたはアンインストールに成功したかどうかを傍受する必要があり、androidシステムでは、インストールとアンインストールがブロードキャストされ、アプリケーションのインストールが完了するとandroidが送信.intent.action.PACKAGE_ADDED放送.intent.getDataString()は、インストールされているパッケージ名を取得します.プログラムをアンインストールするとandroidが送信されます.intent.action.PACKAGE_REMOVED放送.同じだgetDataString()は、アンインストールされたパッケージ名を取得します.
したがって、BroadcastReceiverを1つカスタマイズして、システムブロードキャストの傍受と処理を行うだけです.
1、カスタムブロードキャストカスタムブロードキャストMyInstalledReceiverはBroadcastReceiverから継承し、そのonReceive()方式を実現し、具体的なコードは以下の通りである.
import android.content.BroadcastReceiver; 
import android.content.Context; 
import android.content.Intent; 
 
public class BootReceiver extends BroadcastReceiver{ 
       
    @Override   
    public void onReceive(Context context, Intent intent){ 
        //        
        if (intent.getAction().equals("android.intent.action.PACKAGE_ADDED")) {    
            String packageName = intent.getDataString();    
            System.out.println("   :" +packageName + "     ");      
        }    
        //         
        if (intent.getAction().equals("android.intent.action.PACKAGE_REMOVED")) {    
            String packageName = intent.getDataString();    
            System.out.println("   :"  + packageName + "     "); 
  
        } 
    } 
} 

2、登録傍受
1)xml方式:AndroidManifest.xmlプロファイルのApplicationノードの下に、AndroidManifestでカスタム登録リスニングMyInstalledReceiverを追加します.xmlに追加された登録リスニングは、デフォルトではアプリケーション全体のライフサイクルです.          
 
 
 
     
         
             
                 
 
                 
             
         
 
         
             
                 
                 
 
                 
             
         
     
     
 

2)コード方式:一般的にActivityのonStart()メソッドにリスニングを登録し、onDestroy()メソッドでリスニングをログアウトする(onStop()メソッドでログアウトすることもでき、ライフサイクルログアウト時に終了する). 
@Override 
public void onStart(){ 
    super.onStart(); 
     
    installedReceiver = new MyInstalledReceiver(); 
    IntentFilter filter = new IntentFilter(); 
     
    filter.addAction("android.intent.action.PACKAGE_ADDED"); 
    filter.addAction("android.intent.action.PACKAGE_REMOVED"); 
    filter.addDataScheme("package"); 
     
    this.registerReceiver(installedReceiver, filter); 
} 
 
@Override 
public void onDestroy(){ 
    if(installedReceiver != null) { 
        this.unregisterReceiver(installedReceiver); 
    } 
     
    super.onDestroy(); 
} 

3、インストール、アンインストール情報を保存する
一般的には、プログラムへのインストール、アンインストール情報を使用する必要があるので、情報を格納する必要があります.Sqliteデータベースを使用するか、プリファレンスなどを使用するのが良いです.