Android開發之獲取APK的包名
阿新 • • 發佈:2019-02-02
近期在開發一款APP,需要呼叫google play service,前提是安裝了。雖然可以通過以下程式碼可以判斷是否安裝了,但是有時總是棋差一著。關鍵的包名沒找著,難以對此功能實踐。
private boolean isApplicationExist(String packageName){ try { getPackageManager().getApplicationInfo(packageName, PackageManager.GET_UNINSTALLED_PACKAGES); return true; } catch (NameNotFoundException e) { return false; } }
經過反覆的研究之後,發現通過APK可以獲取包名。提供以下兩種方法以供大家參考:
1.暴力方式:將APK轉化重新命名為zip格式,解壓之後即可看到;
2.技術手段:研究Android API發現,官方提供的PackageManager,PackageInfo,ApplicationInfo這三個類獲取APK相關的資訊。程式碼如下:
個人愚見,如有更好的方法,還望告之。private String getApkPackageName(String filePath){ PackageManager pm = getPackageManager(); PackageInfo info = pm.getPackageArchiveInfo(filePath, PackageManager.GET_ACTIVITIES); if (info != null) { ApplicationInfo appInfo = info.applicationInfo; String appName = pm.getApplicationLabel(appInfo).toString(); String packname = appInfo.packageName; String version = info.versionName; return packname; } else { return null; } }