final PackageManager pm = getPackageManager();
String apkName = "example.apk";
String fullPath = Environment.getExternalStorageDirectory() + "/" + apkName;
PackageInfo info = pm.getPackageArchiveInfo(fullPath, 0);
Run Code Online (Sandbox Code Playgroud)
你可以得到它:
info.versionCod
Run Code Online (Sandbox Code Playgroud)
和
info.versionName
Run Code Online (Sandbox Code Playgroud)
希望这对你有帮助
尝试这个:
ActivityManager actMngr = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
string runningPkg = actMngr.getRunningTasks(1).get(0).topActivity.getPackageName();
PackageManager pm = context.getPackageManager();
ApplicationInfo ai = pm.getApplicationInfo(runningPkg , 0);
Run Code Online (Sandbox Code Playgroud)
添加:
如果您没有获取 apk 名称,则可以将其与安装的 pkg 进行比较并获取相应的应用程序名称。您可以像这样获取已安装应用程序的 pkg 名称和应用程序名称:
ArrayList<PackageInfo> res = new ArrayList<PackageInfo>();
PackageManager pm = ctx.getPackageManager();
List<PackageInfo> packs = pm.getInstalledPackages(0);
for(int i=0;i<packs.size();i++) {
PackageInfo p = packs.get(i);
String description = (String) p.applicationInfo.loadDescription(pm);
String label= p.applicationInfo.loadLabel(pm).toString();
//Continue to extract other info about the app...
}
Run Code Online (Sandbox Code Playgroud)
注意:将此权限添加到清单文件中:
<uses-permission android:name="android.permission.GET_TASKS" />
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12207 次 |
| 最近记录: |