繁体   English   中英

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

[英]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。 为此,您需要使用PackageManagergetPackageInfo()方法:

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM