2011-07-27 21 views
9

Android'de yüklü uygulama adını görüntülemek için küçük bir yöntem yaptım. Ama "isim" verdiğimde, onun istisna hatası gösteriliyor. Ve "PaketAdı" verince yöntem mükemmel yürütür ve ben gayet iyi çalışıyor ama String appname=pk.name.toString() verdiğimde programı bir özel durum hatası atıyor String appname=pk.packageName.toString() verirken Yukarıdaki kodda bir listeAndroid'de yüklü uygulama adı nasıl edinilir?

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

} 

Paket adını görüntüler. Lütfen sorunu çözmeme yardım edin.

cevap

20

Benim tahminim, name alanı null olduğu için kodunuz bir NullPointerException atar. Her durumda, ne muhtemelen istiyorum geçerli:

String appname = packageManager.getApplicationLabel(pk).toString() 
+0

Teşekkür yüklü alabilirsiniz bu kullanarak. Tam olarak aradığım şey. – user3734429

+0

Güzel, teşekkürler. Null olduğu hakkında bir fikrin var mı? – charlag

+0

@charlag_khan - Yani pk.name'? Muhtemelen manifesto bir 'android: name' özniteliği bildirmediği için. Bu ad sadece uygulamanın kendi "Application" alt sınıfını tanımlaması gerektiğinde kullanılır. –

0

Eğer uygulama paketinin adları ve Uygulama adını

List<PackageInfo> packageInfos=getPackageManager().getInstalledPackages(0); 
for (PackageInfo packageInfo:packageInfos) 
{ 
     Log.d(TAG,"packageName "+packageInfo.packageName); 
     Log.d(TAG,"appname "+getPackageManager().getApplicationLabel(packageInfo.applicationInfo)); 
} 
İlgili konular