Android 應用安裝成功之后刪除apk文件


問題: 
在應用開發中遇到需要這樣的需求:在用戶下載我們的應用安裝之后刪除安裝包。 
解決: 
android會在每個外界操作APK的動作之后發出系統級別的廣播,過濾器名稱: android.intent.action.package_ADDED, 
android.intent.action.PACKAGE_REMOVED, 
需要注意點的是在涉及到存儲卡狀態改變的時候必須添加

<data android:scheme="package" >

我們要做的就是在應用AndroidManifest中注冊靜態廣播,並在自定義的廣播里處理相應的邏輯:

<receiver
  android:name="com.example.testdeleteapk.receiver.InitApkBroadCastReceiver"
  android:enabled="true" >
      <intent-filter>
         <action android:name="android.intent.action.PACKAGE_ADDED" />
         <action android:name="android.intent.action.PACKAGE_REPLACED" />
         <action android:name="android.intent.action.PACKAGE_REMOVED" />
         <data android:scheme="package" />
     </intent-filter>
</receiver>

這樣,在應用安裝成功后就會接受到相應的廣播。廣播定義如下:

package com.example.testdeleteapk.receiver;

import Java.io.File;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.Environment;

public class InitApkBroadCastReceiver extends BroadcastReceiver {


    @Override
    public void onReceive(Context context, Intent intent) {

        if (Intent.ACTION_PACKAGE_ADDED.equals(intent.getAction())) {
            system.out.println("監聽到系統廣播添加");

        }

        if (Intent.ACTION_PACKAGE_REMOVED.equals(intent.getAction())) {
            System.out.println("監聽到系統廣播移除");

        }

        if (Intent.ACTION_PACKAGE_REPLACED.equals(intent.getAction())) {
            System.out.println("監聽到系統廣播替換");

        }
    }

}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM