1

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

パッケージ名を取得するメソッドを見つけ出す必要があるようですが、どこにパラメータとしてアプリケーション情報を渡すことができますか(アプリケーション共通名とアイコンのように)。

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

答えて

2

まずこのコードのすべてのアプリを受け取る:そして、あなたは、最新のインストールアプリのパッケージ名を受け取ることができます

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

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

次に、このコードでのパッケージのリストをソートしますこの方法:

packages.get(0).packageName 
+0

ありがとうございます!それは働いた:) –

関連する問題