如何让Android知道我的应用程序可以打开MP4文件
我不知道如何恰当地表达这个问题。不过我会尽力的。当我在手机网络浏览器中单击直接视频链接示例()时,浏览器会询问我是否要打开或下载该文件。我选择了“打开”,系统会给我一些可以打开文件的应用程序。问题是我的应用程序没有列出。如果我突出显示并共享链接,我的应用程序将被列出。但是,我希望在我打开或共享时将其同时列出 在我的清单中,我向mainactivity添加了以下内容:如何让Android知道我的应用程序可以打开MP4文件,android,kotlin,media-player,mime,open-with,Android,Kotlin,Media Player,Mime,Open With,我不知道如何恰当地表达这个问题。不过我会尽力的。当我在手机网络浏览器中单击直接视频链接示例()时,浏览器会询问我是否要打开或下载该文件。我选择了“打开”,系统会给我一些可以打开文件的应用程序。问题是我的应用程序没有列出。如果我突出显示并共享链接,我的应用程序将被列出。但是,我希望在我打开或共享时将其同时列出 在我的清单中,我向mainactivity添加了以下内容: <activity android:name=".MainActivity">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter android:scheme="http"
tools:ignore="AppLinkUrlError">
<action android:name="android.intent.action.SEND"/>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.BROWSABLE"/>
<data android:mimeType="video/*"/>
</intent-filter>
<intent-filter android:scheme="http"
tools:ignore="AppLinkUrlError">
<action android:name="android.intent.action.SEND"/>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
<data android:mimeType="text/plain"/>
</intent-filter>
</activity>
尝试添加
<category android:name="android.intent.category.BROWSABLE"/>
可以从浏览器安全调用的活动必须支持此类别。例如,如果用户正在查看网页或电子邮件,并单击文本中的链接,则生成该链接的意图将需要可浏览类别,因此只有支持该类别的活动才会被视为可能的操作。通过支持这个类别,您可以保证调用任何匹配的意图都不会造成任何损害(没有用户干预)
您可能还需要添加
(在一个筛选器中可以有多个操作),但我不确定这是否有必要。catustictacs将我引向了正确的方向。我正在寻找一种通用的方法来打开我的应用程序中的任何链接。然而,这似乎是不可能的。您必须描述每台服务器的数据类型:(下面我将展示我的意图过滤器的代码。虽然很混乱,但它适用于我指定的站点
**如果有人知道一个通用的方法让我的应用打开任何链接,请让我知道。VLC播放器似乎可以打开任何链接
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.SEND" />
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="https"
android:host="test-videos.co.uk"/>
<!--<data android:mimeType="video/*" />-->
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.SEND" />
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="https"
android:host="test-videos.co.uk"/>
<data android:scheme="https"
android:host="storage.googleapis.com"/>
<!--<data android:mimeType="text/plain" />-->
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.SEND" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:mimeType="video/*" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.SEND" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:mimeType="text/plain" />
</intent-filter>
</activity>
我添加了它,但运气不好。还有其他建议吗?您是否尝试了查看操作?此外,如果删除了纯文本筛选器,共享是否仍然有效?如果删除了,您的MIME类型可能很好-如果没有,您可能通过共享获得文本URL或其他内容,但打开文件需要正确的数据类型规范,以及这就是所有这些都可能变得有点棘手的地方(我绝对不是专家!)当我添加查看操作时,所有内容都以红色下划线。是的,我尝试了查看操作。请参阅我更新的代码。如果我删除纯文本,它将不起作用。数据类型可能是我的问题。我在这里使用大公兔测试视频:请不要放弃我。我因为这个lol而头发都掉光了。还有其他想法吗?是的,对不起,我一直在搞乱它le和我无法得到任何有用的东西。我在Contacts应用程序中添加了链接作为“网站”(以防Chrome实际上没有要求应用程序播放它可以处理的视频),但没有骰子。我从浏览器应用程序代码中粘贴了意图过滤器(在这里的某个地方关闭了另一个答案!),但在默认应用程序下是“我的测试一”“声称不处理任何链接”。老实说,我不知道,对不起,伙计