1. 程式人生 > >android應用安裝成功之後刪除apk檔案

android應用安裝成功之後刪除apk檔案

[摘要:題目: 正在運用開闢中碰到須要如許的需供:正在使用者下載我們的運用裝置以後刪除裝置包。 辦理: android會正在每一箇中界操縱APK的舉措以後收回體系級其餘播送,過濾器稱號:] 

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

<data android:scheme="package" >

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

  1. 1.
<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("監聽到系統廣播替換"); } } }