2013-04-17 3 views
3

Я использую следующий код, но когда я запускаю его, он «неожиданно останавливается»Применения Остановлось неожиданно при получении имен установленных пакетов

Я дал разрешения как ниже

<uses-permission android:name="android.permission.RESTART_PACKAGES" /> 
<uses-permission android:name="android.permission.GET_TASKS" /> 
<uses-permission android:name="android.permission.GET_PACKAGE_SIZE" /> 

Что не так с этим кодом :

import java.util.List;   
import android.app.Activity; 
import android.content.Context; 
import android.content.pm.ApplicationInfo; 
import android.content.pm.PackageManager; 
import android.os.Bundle; 
import android.util.Log; 

public class MainActivity extends Activity 
{ 
    public static String Tag = "Task"; 
    Context ctx; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     //Intent service = new Intent(this,MyService.class); 
     PackageManager pm = getApplicationContext().getPackageManager(); 
      List<ApplicationInfo> pis = pm.getInstalledApplications(PackageManager.GET_UNINSTALLED_PACKAGES);   

     for (ApplicationInfo appinfo : pis) 
     { 
      String S1=appinfo.className.toString(); 
      Log.i(Tag,S1); 

     } 
    } 
} 

Я пытаюсь получить установленные приложения один за другим.

+0

Загрузите трассировку стека –

ответ

0

Значение appinfo.className может быть null. Попробуйте следующее:

for (ApplicationInfo appinfo : pis)  
{ 
    Log.i(Tag, "" + appinfo.className); 
} 

и вы увидите много нулевых значений в вашем журнале.

Смежные вопросы