android-список установленных медиаплееров

Я знаю, что этот пост похож на этот вопрос: Как получить список установленных медиаплееров, но я попытался протестировать код, и он вылетает! это код:

public class Newactivity extends Activity {
protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);
setContentView(R.layout.display);
Intent intent = new Intent(Intent.ACTION_VIEW);
Uri uri = Uri.withAppendedPath(MediaStore.Video.Media.INTERNAL_CONTENT_URI,"1"); 
intent.setData(uri);
List<ResolveInfo> playerList;
PackageManager packageManager = null;
playerList = packageManager.queryIntentActivities(intent, 0);
    }

это ошибки logcat:

10-19 13:05:52.770: E/AndroidRuntime(558): FATAL EXCEPTION: main
10-19 13:05:52.770: E/AndroidRuntime(558): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.upnpexample/com.upnpexample.Newactivity}: java.lang.NullPointerException
10-19 13:05:52.770: E/AndroidRuntime(558):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1647)
10-19 13:05:52.770: E/AndroidRuntime(558):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
10-19 13:05:52.770: E/AndroidRuntime(558):  at android.app.ActivityThread.access$1500(ActivityThread.java:117)
10-19 13:05:52.770: E/AndroidRuntime(558):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
10-19 13:05:52.770: E/AndroidRuntime(558):  at android.os.Handler.dispatchMessage(Handler.java:99)
10-19 13:05:52.770: E/AndroidRuntime(558):  at android.os.Looper.loop(Looper.java:123)
10-19 13:05:52.770: E/AndroidRuntime(558):  at android.app.ActivityThread.main(ActivityThread.java:3683)
10-19 13:05:52.770: E/AndroidRuntime(558):  at java.lang.reflect.Method.invokeNative(Native Method)
10-19 13:05:52.770: E/AndroidRuntime(558):  at java.lang.reflect.Method.invoke(Method.java:507)
10-19 13:05:52.770: E/AndroidRuntime(558):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
10-19 13:05:52.770: E/AndroidRuntime(558):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
10-19 13:05:52.770: E/AndroidRuntime(558):  at dalvik.system.NativeStart.main(Native Method)
10-19 13:05:52.770: E/AndroidRuntime(558): Caused by: java.lang.NullPointerException
10-19 13:05:52.770: E/AndroidRuntime(558):  at com.upnpexample.Newactivity.onCreate(Newactivity.java:31)
10-19 13:05:52.770: E/AndroidRuntime(558):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
10-19 13:05:52.770: E/AndroidRuntime(558):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611)
10-19 13:05:52.770: E/AndroidRuntime(558):  ... 11 more

Любая идея, пожалуйста?


person user1735986    schedule 19.10.2012    source источник
comment
Вы добавили соответствующее разрешение здесь?   -  person KOTIOS    schedule 11.04.2013


Ответы (1)


На этом Uri может не быть никакого контента, так как вы его выдумываете. Пожалуйста, используйте Uri для фактического содержания.

Кроме того, изучите трассировку стека в LogCat, чтобы увидеть, что вы делаете неправильно.


ОБНОВЛЕНИЕ

PackageManager packageManager = null;
playerList = packageManager.queryIntentActivities(intent, 0);

Поскольку packageManager равно null, здесь вы получите NullPointerException. Используйте getPackageManager(), чтобы получить экземпляр PackageManager.

person CommonsWare    schedule 19.10.2012
comment
Я изучаю трассировку, но не знаю, что мне нужно изменить! - person user1735986; 19.10.2012
comment
Я делаю PackageManager packageManager = this.getPackageManager(); но NullPointerException сохраняется - person Ivan; 11.04.2013
comment
Убедитесь, что ваш контент MediaStore существует. Если он не существует packageManager.queryIntentActivities(intent, 0); вызовет исключение. - person William Seemann; 11.04.2013
comment
@WilliamSeemann Спасибо, в MediaStore я запрашиваю видеоплеерUri uri = Uri.withAppendedPath(MediaStore.Video.Media.INTERNAL_CONTENT_URI,1); Я попробовал код на устройствах только с проигрывателем по умолчанию, а на других - с двумя, и исключение продолжается. - person Ivan; 12.04.2013