[英]How to get package name from apk in Android?
我正在开发一个包含应用程序列表的应用程序。 单击后,用户将被重定向到 Play 商店以下载此应用程序。 成功下载后,我必须将该应用程序包名称发送到服务器以对其进行验证。 我该怎么做?
您可以使用以下代码获取设备中所有已安装的应用程序
final PackageManager pm = getPackageManager();
//get a list of installed apps.
List<ApplicationInfo> packages = pm.getInstalledApplications(PackageManager.GET_META_DATA);
for (ApplicationInfo packageInfo : packages) {
Log.d(TAG, "Installed package :" + packageInfo.packageName);
Log.d(TAG, "Source dir : " + packageInfo.sourceDir);
Log.d(TAG, "Launch Activity :" + pm.getLaunchIntentForPackage(packageInfo.packageName));
}
并在 for 循环中找到包名。
我假设您想在运行时执行此操作,因此您的应用程序可以在没有硬编码的情况下读取自己的 package_id。 为此,您需要使用PackageManager
的getPackageInfo()
方法:
protected String getPackageName() {
try {
PackageInfo packageInfo = getPackageManager.getPackageInfo(getPackageName(), 0);
return packageInfo.applicationInfo.packageName;
} catch (Exception e) {
e.printStacktrace();
}
return null;
}
使用apkanalyzer ,它是 Android 工作室的一部分:
apkanalyzer manifest application-id path/to/apk/file.apk
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.