1

携帯電話に最後にインストールされたアプリからパッケージ名、アプリケーション名、およびアイコンを抽出するコードを書いています。アプリケーション情報からアプリケーションの共通名とアイコンを取得できますが、パッケージ名を取得する方法がわかりません。パッケージ名を取得するために見つけたすべてのコードは、最後にインストールされたアプリではなく、MY アプリのパッケージ名を教えてくれます。

アプリケーション情報をパラメーターとして渡すことができるパッケージ名を取得する方法を見つける必要があるようです (アプリケーションの共通名とアイコンの場合と同様)。

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){}
4

1 に答える 1

3

まず、このコードですべてのアプリを受け取ります:

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));
                }
            });

次に、最新のインストール済みアプリのパッケージ名を次の方法で受け取ることができます。

packages.get(0).packageName
于 2016-04-26T21:58:22.917 に答える