Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何让Android知道我的应用程序可以打开MP4文件_Android_Kotlin_Media Player_Mime_Open With - Fatal编程技术网

如何让Android知道我的应用程序可以打开MP4文件

如何让Android知道我的应用程序可以打开MP4文件,android,kotlin,media-player,mime,open-with,Android,Kotlin,Media Player,Mime,Open With,我不知道如何恰当地表达这个问题。不过我会尽力的。当我在手机网络浏览器中单击直接视频链接示例()时,浏览器会询问我是否要打开或下载该文件。我选择了“打开”,系统会给我一些可以打开文件的应用程序。问题是我的应用程序没有列出。如果我突出显示并共享链接,我的应用程序将被列出。但是,我希望在我打开或共享时将其同时列出 在我的清单中,我向mainactivity添加了以下内容: <activity android:name=".MainActivity">

我不知道如何恰当地表达这个问题。不过我会尽力的。当我在手机网络浏览器中单击直接视频链接示例()时,浏览器会询问我是否要打开或下载该文件。我选择了“打开”,系统会给我一些可以打开文件的应用程序。问题是我的应用程序没有列出。如果我突出显示并共享链接,我的应用程序将被列出。但是,我希望在我打开或共享时将其同时列出

在我的清单中,我向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实际上没有要求应用程序播放它可以处理的视频),但没有骰子。我从浏览器应用程序代码中粘贴了意图过滤器(在这里的某个地方关闭了另一个答案!),但在默认应用程序下是“我的测试一”“声称不处理任何链接”。老实说,我不知道,对不起,伙计