Android隐式意图未正确显示用于播放mp4文件的应用程序列表

问题描述 投票:0回答:1

我有一个前台服务,应该启动一个隐式意图来播放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包含mp4文件的Uri。目的过滤器是这样的:

<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文件:

enter image description here

注意,我安装了一些可以播放mp4文件的程序。当我从文件浏览器中单击mp4文件时,看到以下内容:

enter image description here

我要去哪里错了?为什么隐式意图无法启动用于播放mp4文件的正确应用程序集?我设置了错误的MIME类型吗?

android mime-types android-implicit-intent
1个回答
0
投票

找到答案!是的,我设置了错误的MIME类型。

我将意图修改为intent.setDataAndType(media_uri, "video/*");,并将意图过滤器修改为<data android:mimeType="video/mp4" />。这解决了问题。

© www.soinside.com 2019 - 2024. All rights reserved.