Как получить имя установленного приложения в Android? - PullRequest
9 голосов
/ 27 июля 2011

Я сделал небольшой метод для отображения имени установленного приложения в Android.Но когда я даю атрибут "name", он показывает ошибку исключения.И когда я даю «packageName», метод выполняется отлично и отображает имя пакета в списке

private void getInstalledApps() {
    // TODO Auto-generated method stub
     PackageManager packageManager=this.getPackageManager();
        List<ApplicationInfo applist=packageManager.getInstalledApplications(0);


        Iterator<ApplicationInfo> it=applist.iterator();
        while(it.hasNext()){
            ApplicationInfo pk=(ApplicationInfo)it.next();

            String appname=pk.name.toString();

            installedapplist.add(appname);
        }

}

. В приведенном выше коде, когда я даю String appname=pk.packageName.toString(), он работает нормально, но когда я даю String appname=pk.name.toString() программавыдает ошибку исключения.Пожалуйста, помогите мне разобраться с проблемой.

Ответы [ 2 ]

22 голосов
/ 27 июля 2011

Полагаю, ваш код выдает исключение NullPointerException, поскольку поле name равно нулю. В любом случае, то, что вы, вероятно, хотите, это:

String appname = packageManager.getApplicationLabel(pk).toString()
0 голосов
/ 23 августа 2017

, используя это, вы можете получить имена установленных приложений и имена приложений

List<PackageInfo> packageInfos=getPackageManager().getInstalledPackages(0);
for (PackageInfo packageInfo:packageInfos)
{
        Log.d(TAG,"packageName "+packageInfo.packageName);
        Log.d(TAG,"appname "+getPackageManager().getApplicationLabel(packageInfo.applicationInfo));
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...