Android-獲取手機已經安裝的程式
阿新 • • 發佈:2019-02-11
有時候我們會查詢手機裡面是否安裝了某個程式,或者獲取已經安裝軟體名稱的集合。
android這邊提供了相應的介面。
final PackageManager packageManager = getActivity().getPackageManager();//獲取packagemanager List< PackageInfo> pinfo = packageManager.getInstalledPackages(0);//獲取所有已安裝程式的包資訊 if(pinfo != null){ for(int i = 0; i < pinfo.size(); i++){ String packName = pinfo.get(i).packageName; Log.d("info", "-->"+packName); } }
上面的例子可以打印出安裝軟體的包名。每個程式的包名在android手機裡都是唯一的。
判斷手機是否安裝了某個程式,如果安裝了此程式,刪除它。
從android2.2開始軟體可以安裝到SD卡上,所以也有相應介面判斷程式是否安裝到SD卡上private void uninstallSoftware(Context context, String name) { final PackageManager packageManager = context.getPackageManager(); try { PackageInfo pInfo = packageManager.getPackageInfo(name, PackageManager.COMPONENT_ENABLED_STATE_DEFAULT); if(pInfo!=null){ //刪除軟體 Uri uri = Uri.parse("package:"+ name); Intent intent = new Intent(Intent.ACTION_DELETE, uri); context.startActivity(intent); } } catch (NameNotFoundException e) { e.printStackTrace(); } }
private void isInstallOnSd(Context context,String name){ PackageManager pm=context.getPackageManager(); ApplicationInfo appInfo; try { appInfo = pm.getApplicationInfo(name, 0); if ((appInfo.flags & ApplicationInfo.FLAG_EXTERNAL_STORAGE) != 0) { // App on sdcard Log.d("info", "app on sd"); } } catch (NameNotFoundException e) { e.printStackTrace(); } }