У меня есть служба переднего плана , которая должна запускать неявное намерение воспроизвести файл mp4. Намерение выглядит так:
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(media_uri);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
if (intent.resolveActivity(getPackageManager()) != null) {
startActivity(intent);
}
Переменная media_uri
содержит Uri файла mp4. Фильтр намерений таков:
<service
android:name=".MahalayaService"
android:exported="false"
android:taskAffinity=""
android:launchMode="singleTask">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="application/mp4" />
</intent-filter>
</service>
Намерение запускает список приложений, но ни одно из них не может воспроизвести файл mp4:
Обратите внимание, что у меня установлено несколько программ, которые могут воспроизводить файл mp4. Когда я нажимаю на файл mp4 из файлового браузера, я вижу это:
Где я иду не так? Почему неявное намерение не запускает правильный набор приложений для воспроизведения файла mp4? Я установил неправильный тип MIME?