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