Проверьте установленный видеоплеер на Android
У меня есть приложение, которое использует классы VideoView и MediaController для воспроизведения видео MP4.
Я хочу добавить в свое приложение поддержку внешних видеоплееров. Я хочу показать список игроков и позволить пользователям выбрать одного из них или продолжить использовать внутренний проигрыватель приложений.
Чтобы показать список игроков, я использую этот код:
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.parse(f.getFileName()), "video/*");
startActivity(Intent.createChooser(intent, "Choose player"));
но я не знаю, как разрешить пользователю продолжать работу с моим приложением, если он не хочет использовать один из них.
Как я могу сделать этот выбор?
Роберто
2 ответа
Вы можете создать свой собственный список, используя
final Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.parse(f.getFileName()), "video/*");
final List<ResolveInfo> appList = context.getPackageManager().queryIntentActivities(intent , PackageManager.PERMISSION_GRANTED);
Вы можете получить больше информации для каждого элемента с:
for (ResolveInfo resolveInfo : appList ) {
try {
ApplicationInfo ai =context.getPackageManager().getApplicationInfo(resolveInfo.activityInfo.packageName, 0);
// your code here
} catch (NameNotFoundException e) {
e.printStackTrace();
}
}
Для запуска просто найдите приложение, в вашем случае вы можете использовать:
// for your list you must remember Package name for each item
pn = resolveInfo.activityInfo.packageName;
//after user make selection, get selected PackageName and start desired app with your data.
Intent IntentLaunch = context.getPackageManager().getLaunchIntentForPackage(pn);
IntentLaunch.setAction(Intent.ACTION_VIEW);
IntentLaunch.setDataAndType(Uri.parse(f.getFileName()), "video/*");
IntentLaunch.setData(mData /* data that you want to pass to app*/);
startActivity(IntentLaunch);
Пожалуйста, проверьте "Пример неявного намерения" и "Принудительный выбор приложения" по следующей ссылке: http://developer.android.com/guide/components/intents-filters.html