基本上,当一个应用共享一个视频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{
}
编辑:我认为添加屏幕截图可能会使其更加清晰。
这两款手机的应用程序几乎完全相同。
修复!我要做的就是删除<category android:name="android.intent.category.BROWSABLE"/>
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句