基本上,当一个应用程序共享一个视频网址时,我的应用程序应该显示在列表中,但事实并非如此. MXPlayer和谷歌照片媒体播放器都没有显示好和全播(最近有一个版本来解决这个问题).
我写了一个快速的应用来测试这个问题,这是我的清单过滤器:
<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”/>