Android 是否可以在删除包时获取应用程序名

Android 是否可以在删除包时获取应用程序名,android,android-intent,broadcastreceiver,Android,Android Intent,Broadcastreceiver,这是我的接收器类的一部分: Uri dataURI = intent.getData(); String appPackage = (dataURI != null ? dataURI.getSchemeSpecificPart() : null); if (action.equals(Intent.ACTION_PACKAGE_ADDED)) { UpdateUserGamesService.ACTION_PACKAGE_ADDED; }

这是我的接收器类的一部分:

   Uri dataURI = intent.getData();
    String appPackage = (dataURI != null ? dataURI.getSchemeSpecificPart() : null);

    if (action.equals(Intent.ACTION_PACKAGE_ADDED)) {
        UpdateUserGamesService.ACTION_PACKAGE_ADDED;
    }
    else if (action.equals(Intent.ACTION_PACKAGE_REMOVED)) {
        UpdateUserGamesService.ACTION_PACKAGE_REMOVED;
    }

它工作得很好。是否有方法获取应用程序名而不仅仅是包名?

您可以尝试
ApplicationInfo
class:

您可以检索有关特定应用程序的信息。这对应于从AndroidManifest.xml的标记收集的信息

请尝试使用以下代码获取第三方应用程序名称:

 List<ApplicationInfo> apps = getPackageManager().getInstalledApplications(0);
    for (int i=0; i < apps.size(); i++)
    {
        if ((apps.get(i).flags & ApplicationInfo.FLAG_SYSTEM) == 1)
        {
              String appName =  (String) getPackageManager().getApplicationLabel(apps.get(i));
             Log.i("App Name", appName);
       }
    }  
我建议您获取所有应用程序名称,并使用持久性存储(最好是SqLite)

在将来,如果任何一个仍然删除包,您将拥有与该应用程序相关的所有信息


我希望这会有所帮助。

试试这个,我正在尝试获取第三方应用程序名,而不是我自己的应用程序名。然后像标题所述那样尝试这个,问题是删除的。一旦在添加时获得名称,以后可以使用持久存储来检索名称。SQLite不是最快的解决方案。最好实现共享首选项。
Is it possible to get application name when package is removed ?