На моем Samsung Galaxy S4 под управлением Android версии 5.0 ни одно из указанных выше решений не работает, но я нашел другое решение. Работает отлично. Вот код для кого-то, кому может понадобиться помощь.

м приложении есть пункт меню, в котором я хочу открыть предпочитаемый пользователем медиаплеер, интересующийся только аудио. В идеале, когда пользователь выбирает этот элемент в первый раз, он выбирает единственный медиаплеер на телефоне, если у него установлен только один, или представляет список, если их больше одного. Я бы тогда избавился от их выбора, чтобы в следующий раз он его открыл.

Насколько я понимаю, в Android нет медиаплеера по умолчанию. У меня есть оригинальный Droid и у него есть медиаплеер, но я понимаю, что другие операторы используют свои собственные, или пользователь может удалить стандартный.

Я попробовал несколько вещей, но не могу заставить что-либо работать.

Я попробовал этот код, который должен получить список пакетов, которые поддерживают намерение. Это работает для некоторых вещей, таких как «application / pdf» и «video / *». Когда я пытаюсь сделать это с «audio / *», я получаю пустой список, хотя у меня установлены как стандартный Android-медиаплеер, так и MixZing. Также попробовал это с "media / *" и ничего не получил.

PackageManager packageManager = getPackageManager();
Intent testIntent = new Intent(Intent.ACTION_VIEW);
testIntent.setType("audio/*");
List list = packageManager.queryIntentActivities(testIntent, 0);

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

Intent i = new Intent(Intent.ACTION_VIEW);
Uri u = Uri.withAppendedPath(MediaStore.Audio.Media.INTERNAL_CONTENT_URI,"1"); 
i.setData(u); 
startActivity(i); 

Единственное, о чем я могу подумать, это выйти и получить имена пакетов самых популярных медиаплееров, жестко их кодировать и найти в телефоне, какие из них установлены, но это не лучший подход. Я не понимаю, почему первый бит кода не работает. Возможно, фильтры намерений неправильно установлены для этих приложений, или я использую неправильный код или типы пантомимы.

Ответы на вопрос(0)

Ваш ответ на вопрос