Проверьте установленный видеоплеер на 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

Другие вопросы по тегам