gpt4 book ai didi

android - 提取我手机上最后安装的应用程序的包名

转载 作者:行者123 更新时间:2023-11-29 17:20:23 25 4
gpt4 key购买 nike

我正在编写代码以从手机上最后安装的应用程序中提取程序包名称、应用程序名称和图标。我可以从应用程序信息中获取应用程序通用名称和图标,但我似乎无法弄清楚如何获取程序包名称。我找到的所有获取包名的代码都给我我的应用程序的包名,而不是最后安装的应用程序。

看来我需要找到一种方法来获取包名称,我可以在其中将应用程序信息作为参数传递(就像我为应用程序通用名称和图标所做的那样)。

final PackageManager pm = context.getPackageManager();
ApplicationInfo ai;
try {


ai = pm.getApplicationInfo(intent.getData().getSchemeSpecificPart(), 0);
Log.d("tag_name","Application Info" + ai);


PACKAGE_NAME = context.getApplicationContext().getPackageName();
Log.d("tag_name","Package Name" + PACKAGE_NAME);



} catch (final PackageManager.NameNotFoundException e) {
ai = null;
}


final String applicationName = (String) (ai != null ? pm.getApplicationLabel(ai) : "(unknown)");
Log.d("tag_name", "Application NAME" + applicationName);



// http://www.carbonrider.com/2016/01/01/extract-app-icon-in-android/

try {

Drawable icon = context.getPackageManager().getApplicationIcon(ai);
Log.d("tag_name", "ICON" + icon);}
catch (Exception e){}

最佳答案

首先使用此代码接收所有应用程序:

List<PackageInfo> packages = packageManager.getInstalledPackages(PackageManager.GET_META_DATA);

然后用这段代码对包列表进行排序:

 Collections.sort(packages, new Comparator<PackageInfo>() {
@Override
public int compare(PackageInfo p1, PackageInfo p2) {
return Long.toString(p2.firstInstallTime).compareTo(Long.toString(p1.firstInstallTime));
}
});

然后可以这样接收最新安装的app的包名:

packages.get(0).packageName

关于android - 提取我手机上最后安装的应用程序的包名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36876231/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com