如何从Android中的apk获取包名?

时间:2016-04-21 11:23:12

标签: android

我正在开发一个包含应用列表的应用。点击后,用户将被重定向到Play商店以下载此应用程序。成功下载后,我必须将该应用程序包名称发送到服务器以进行验证。我怎么能这样做?

3 个答案:

答案 0 :(得分:1)

您可以使用以下代码

在设备中获取所有已安装的应用
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循环中找到包名称。

答案 1 :(得分:0)

我假设您希望在运行时执行此操作,因此您的应用程序可以读取自己的package_id,而无需使用此硬编码。为此,您需要使用getPackageInfo()&#39; protected String getPackageName() { try { PackageInfo packageInfo = getPackageManager.getPackageInfo(getPackageName(), 0); return packageInfo.applicationInfo.packageName; } catch (Exception e) { e.printStacktrace(); } return null; } 方法:

Base64.encode(FileUtils.readFileToByteArray(file));

答案 2 :(得分:0)

使用apkanalyzer,它是Android Studio的一部分:

apkanalyzer manifest application-id path/to/apk/file.apk