国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android編程監聽APK安裝與刪除等過程的方法

2019-10-22 18:25:56
字體:
來源:轉載
供稿:網友

本文實例講述了Android編程監聽APK安裝與刪除等過程的方法。分享給大家供大家參考,具體如下:

軟件下載后的一系列動作監聽:先前是通過Service監聽掃描獲取狀態,以后用這個方法測試使用

import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;import android.widget.Toast;public class getBroadcast extends BroadcastReceiver {    @Override    public void onReceive(Context context, Intent intent) {         if(Intent.ACTION_PACKAGE_ADDED.equals(intent.getAction())){          Toast.makeText(context, "有應用被添加", Toast.LENGTH_LONG).show();      }        else if(Intent.ACTION_PACKAGE_REMOVED.equals(intent.getAction())){          Toast.makeText(context, "有應用被刪除", Toast.LENGTH_LONG).show();      }       /*  else if(Intent.ACTION_PACKAGE_CHANGED.equals(intent.getAction())){          Toast.makeText(context, "有應用被改變", Toast.LENGTH_LONG).show();      }*/        else if(Intent.ACTION_PACKAGE_REPLACED.equals(intent.getAction())){          Toast.makeText(context, "有應用被替換", Toast.LENGTH_LONG).show();      }        /* else if(Intent.ACTION_PACKAGE_RESTARTED.equals(intent.getAction())){          Toast.makeText(context, "有應用被重啟", Toast.LENGTH_LONG).show();      }*/       /* else if(Intent.ACTION_PACKAGE_INSTALL.equals(intent.getAction())){          Toast.makeText(context, "有應用被安裝", Toast.LENGTH_LONG).show();      }*/    }}
<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android"   package="zy.Broadcast"   android:versionCode="1"   android:versionName="1.0">  <application android:icon="@drawable/icon" android:label="@string/app_name">    <activity android:name=".Broadcast"         android:label="@string/app_name">      <intent-filter>        <action android:name="android.intent.action.MAIN" />        <category android:name="android.intent.category.LAUNCHER" />      </intent-filter>    </activity>   <receiver android:name="getBroadcast" android:enabled="true" >     <intent-filter>     <action android:name="android.intent.action.PACKAGE_ADDED"></action>     <!-- <action android:name="android.intent.action.PACKAGE_CHANGED"></action>-->     <action android:name="android.intent.action.PACKAGE_REMOVED"></action>     <action android:name="android.intent.action.PACKAGE_REPLACED"></action>     <!-- <action android:name="android.intent.action.PACKAGE_RESTARTED"></action>-->    <!--  <action android:name="android.intent.action.PACKAGE_INSTALL"></action>-->      <data android:scheme="package"></data>       </intent-filter></receiver>  </application>  <uses-sdk android:minSdkVersion="7" /></manifest>

代碼實現添加:

private final BroadcastReceiver apkInstallListener = new BroadcastReceiver() {    @Override    public void onReceive(Context context, Intent intent) {      if(Intent.ACTION_PACKAGE_ADDED.equals(intent.getAction())){      System.out.println("**************Broadcase*************");      File file = uninstallApk.get(isDeleted);      System.out.println(file.toString()+"*****");       file.delete();        //System.out.println(uninstallApk.size()+"(*******"+uApks.size());       if(uninstallApk!=null&&uApks!=null)       {       uninstallApk.remove(isDeleted);       uApks.remove(isDeleted);       }      //清除集合里面的值        if(uninstallApk!=null)        {         System.out.println("onpause******"+uninstallApk.size());         uninstallApk.clear();        }        if(uApks!=null)        {         uApks.clear();        }          System.out.println("******應用添加***"+isDeleted);       Toast.makeText(context, "有應用被添加"+isDeleted, Toast.LENGTH_LONG).show();      }        else if(Intent.ACTION_PACKAGE_REMOVED.equals(intent.getAction())){          System.out.println("*****應用被刪除");         Toast.makeText(context, "有應用被刪除", Toast.LENGTH_LONG).show();      }       /*  else if(Intent.ACTION_PACKAGE_CHANGED.equals(intent.getAction())){          Toast.makeText(context, "有應用被改變", Toast.LENGTH_LONG).show();      }*/        else if(Intent.ACTION_PACKAGE_REPLACED.equals(intent.getAction())){          System.out.println("****應用被替換");         Toast.makeText(context, "有應用被替換", Toast.LENGTH_LONG).show();      }        /* else if(Intent.ACTION_PACKAGE_RESTARTED.equals(intent.getAction())){          Toast.makeText(context, "有應用被重啟", Toast.LENGTH_LONG).show();      }*/       /* else if(Intent.ACTION_PACKAGE_INSTALL.equals(intent.getAction())){          Toast.makeText(context, "有應用被安裝", Toast.LENGTH_LONG).show();      }*/  }};// 注冊監聽private void registerSDCardListener(){    IntentFilter intentFilter = new IntentFilter(Intent.ACTION_MEDIA_MOUNTED);    intentFilter.addAction(Intent.ACTION_PACKAGE_ADDED);    intentFilter.addAction(Intent.ACTION_PACKAGE_REMOVED);    intentFilter.addAction(Intent.ACTION_PACKAGE_REPLACED);    intentFilter.addDataScheme("package");    registerReceiver(apkInstallListener, intentFilter);}

java里的調用 registerSDCardListener()

@Overrideprotected void onDestroy(){ super.onDestroy(); //unregisterReceiver(apkInstallListener);}

希望本文所述對大家Android程序設計有所幫助。


注:相關教程知識閱讀請移步到Android開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 丹寨县| 寿阳县| 浦东新区| 宜春市| 阿合奇县| 富蕴县| 沿河| 正安县| 西乌珠穆沁旗| 宝清县| 绍兴县| 天等县| 卢龙县| 宾阳县| 岑巩县| 尼玛县| 军事| 浮山县| 西林县| 遵化市| 清苑县| 涿鹿县| 莎车县| 岳池县| 建宁县| 绥滨县| 紫阳县| 弥勒县| 隆回县| 绵阳市| 保德县| 咸宁市| 醴陵市| 衡东县| 宁德市| 庆元县| 古丈县| 滁州市| 长丰县| 江安县| 思南县|