我的应用程序不会显示在MIME类型为video / *的android.intent.action.VIEW的选择器对话框中,仅在棉花糖上

卡索洛兹

基本上,当一个应用共享一个视频URL时,我的应用应该显示在列表中,但没有显示。MXPlayer也没有,但是Google Photos媒体播放器显示的很好,也显示了allcast(最近发布的版本可以解决此问题)。

我编写了一个快速应用程序来测试此问题,这是我的清单过滤器:

<intent-filter>
    <action android:name="android.intent.action.MAIN"/>
    <category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>

<intent-filter>
    <category android:name="android.intent.category.DEFAULT"/>
    <data android:mimeType="text/plain"/>
    <data android:mimeType="video/*"/>
    <data android:mimeType="audio/*"/>
    <data android:mimeType="image/*"/>
    <action android:name="android.intent.action.SEND"/>
</intent-filter>

<intent-filter>
    <category android:name="android.intent.category.DEFAULT"/>
    <category android:name="android.intent.category.BROWSABLE"/>
    <data android:mimeType="video/*" android:scheme="http"/>
    <data android:mimeType="audio/*" android:scheme="http"/>
    <data android:mimeType="image/*" android:scheme="http"/>
    <data android:mimeType="video/*" android:scheme="https"/>
    <data android:mimeType="audio/*" android:scheme="https"/>
    <data android:mimeType="image/*" android:scheme="https"/>
    <data android:mimeType="video/*" android:scheme="file"/>
    <data android:mimeType="audio/*" android:scheme="file"/>
    <data android:mimeType="image/*" android:scheme="file"/>
    <action android:name="android.intent.action.VIEW"/>
</intent-filter>

<intent-filter>
    <category android:name="android.intent.category.DEFAULT"/>
    <category android:name="android.intent.category.BROWSABLE"/>
    <data android:host="*" android:pathPattern=".*\\.mp4" android:scheme="http"/>
    <action android:name="android.intent.action.VIEW"/>
</intent-filter>

这是重现该问题的代码:

Intent intent = new Intent("android.intent.action.VIEW");
intent.setDataAndType(Uri.parse("http://media.w3.org/2010/05/sintel/trailer.mp4"),"video/*");
startActivity(intent);

这只是棉花糖上的一个问题。

编辑:我应该补充一点,不是所有的棉花糖设备都这样做。从第一次听说开始,我花了很长时间才复制它,有一天它才刚在Nexus 5上开始发生。我的6P无法复制它。

编辑:我在之前添加了一些调试代码startActivity基本上,我要软件包管理器给我提供可以处理该意图的意图活动,然后我获得与对话框中看到的完全相同的列表。

PackageManager manager = getBaseContext().getPackageManager();
                List<ResolveInfo> infos = manager.queryIntentActivities(intent, 0);
                if (infos.size() > 0) {
                    //THE INFOS LIST HAS THE 3 APPS THAT IT SHOWS BUT MINE IS MISSING
                }else{

                }

编辑:我认为添加屏幕截图可能会使其更加清晰。

这是在带有6.0.1的Nexus 5上,列表已完全展开 这是在带有6.0.1的Nexus 5上,列表已完全展开

这是在带有5.1.1的Nexus 4上,列表也已完全展开 这是在带有5.1.1的Nexus 4上,列表也已完全展开

这两款手机的应用程序几乎完全相同。

卡索洛兹

修复!我要做的就是删除<category android:name="android.intent.category.BROWSABLE"/>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

Related 相关文章

热门标签

归档