android監聽apk安裝
① android程序怎樣監聽自身程序被安裝和卸載
這個我想到的就一種方法,讀取Log信息,然後判斷是否被安裝,其實系統安裝成功之後,會發廣播的,很詳細,但是這種廣播最好是第三方軟體堅定為好,自己就沒法監聽,我前一陣子做升級,就像用這個,但是沒用成,最後只是下載apk成功之後,發送給伺服器日誌信息,感覺自己監聽自己,功能實現上好像有些矛盾,個人意見..
② Android 是怎麼判斷某個APK文件是否已經安裝
Android系統中,判斷應用有無安裝有兩種方式:
1.根據包名判斷,以下為判斷代碼:
public boolean checkApkExist(Context context, String packageName) {
if (packageName == null || 「」.equals(packageName))
return false;
try {
ApplicationInfo info = context.getPackageManager()
.getApplicationInfo(packageName,
PackageManager.GET_UNINSTALLED_PACKAGES);
return true;
} catch (NameNotFoundException e) {
return false;
}
}
2. 根據Intent判斷,以下為判斷代碼:
public boolean checkApkExist(Context context, Intent intent) {
List<ResolveInfo> list = context.getPackageManager().queryIntentActivities(intent, 0);
if(list.size() > 0){
return true;
}
return false;
}
public boolean checkApkExist(Context context, String packageName) {
if (packageName == null || 「」.equals(packageName)) return false;
try {
ApplicationInfo info = context.getPackageManager() .getApplicationInfo(packageName, PackageManager.GET_UNINSTALLED_PACKAGES); return true;
} catch (NameNotFoundException e) { return false; }
}
public boolean checkApkExist(Context context, Intent intent) {
List<ResolveInfo> list = context.getPackageManager()
.queryIntentActivities(intent, 0);
if (list.size() > 0) {
return true;
}
return false;
}