1

Ich schreibe einen Code, um den Paketnamen, den Anwendungsnamen und das Symbol aus der zuletzt installierten App auf meinem Telefon zu extrahieren. Ich kann den allgemeinen Namen und das Symbol der Anwendung von den Anwendungsinformationen erhalten, aber ich kann anscheinend nicht herausfinden, wie man den Paketnamen erhält. Alle Codes, die ich gefunden habe, um den Paketnamen zu erhalten, geben mir den Paketnamen meiner App, nicht die zuletzt installierte App.Den Paketnamen der zuletzt installierten App auf meinem Telefon extrahieren

Es scheint, als müsste ich eine Methode finden, um den Paketnamen zu erhalten, wo ich die Anwendungsinformationen als Parameter übergeben kann (wie ich für den allgemeinen Namen und das Symbol der Anwendung).

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

Antwort

2

erhalten Zunächst alle Apps mit diesem Code:

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

dann die Pakete Liste sortieren, mit diesem Code:

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

Dann können Sie den Paketnamen der zuletzt installierten App erhalten auf diese Weise:

packages.get(0).packageName 
+0

Vielen Dank! Das hat funktioniert :) –