我的应用程序不会显示在选择器对话框中 android.intent.action.VIEW with mime type video/* only on Marshmallow
My app won't show up on the chooser dialog for android.intent.action.VIEW with mime type video/* only on Marshmallow
基本上,当应用分享视频时 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);
这只是棉花糖上的一个问题。
编辑:我应该补充一点,并非所有 Marshmallow 设备都这样做。从我第一次听说它开始,我花了很长时间来重现它,直到有一天它才开始出现在我的 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{
}
编辑:我认为添加屏幕截图可能会使其更加清晰。
这是在我的 Nexus 5 6.0.1 上,列表已完全展开
这是在装有 5.1.1 的 Nexus 4 上,列表也已完全展开
这两款手机的应用几乎完全相同。
为您的 intent-filters
尝试以下方法
<activity >
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.BROWSABLE"/>
<data android:scheme="rtmp"/>
<data android:scheme="rtmpe"/>
<data android:scheme="rtmps"/>
<data android:scheme="rtp"/>
<data android:scheme="rtsp"/>
<data android:scheme="mms"/>
<data android:scheme="mmsh"/>
<data android:scheme="icyx"/>
<data android:scheme="httplive"/>
<data android:scheme="udp"/>
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.BROWSABLE"/>
<data android:mimeType="video/*"/>
<data android:mimeType="audio/*"/>
<data android:mimeType="image/*"/>
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.BROWSABLE"/>
<data android:scheme=""/>
<data android:scheme="file"/>
<data android:scheme="ftp"/>
<data android:scheme="content"/>
<data android:scheme="http"/>
<data android:scheme="https"/>
<data android:mimeType="video/*"/>
<data android:mimeType="audio/*"/>
<data android:mimeType="*/rmvb"/>
<data android:mimeType="*/avi"/>
<data android:mimeType="*/mkv"/>
<data android:mimeType="application/3gpp*"/>
<data android:mimeType="application/mp4"/>
<data android:mimeType="application/mpeg*"/>
<data android:mimeType="application/ogg"/>
<data android:mimeType="application/sdp"/>
<data android:mimeType="application/vnd.3gp*"/>
<data android:mimeType="application/vnd.apple.mpegurl"/>
<data android:mimeType="application/vnd.dvd*"/>
<data android:mimeType="application/vnd.dolby*"/>
<data android:mimeType="application/vnd.rn-realmedia*"/>
<data android:mimeType="application/x-iso9660-image"/>
<data android:mimeType="application/x-extension-mp4"/>
<data android:mimeType="application/x-flac"/>
<data android:mimeType="application/x-matroska"/>
<data android:mimeType="application/x-mpegURL"/>
<data android:mimeType="application/x-ogg"/>
<data android:mimeType="application/x-quicktimeplayer"/>
<data android:mimeType="application/x-shockwave-flash"/>
<data android:mimeType="application/xspf+xml"/>
<data android:mimeType="misc/ultravox"/>
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.BROWSABLE"/>
<data android:scheme=""/>
<data android:scheme="file"/>
<data android:scheme="ftp"/>
<data android:scheme="content"/>
<data android:scheme="http"/>
<data android:scheme="https"/>
<data android:host="*"/>
<data android:pathPattern=".*\.3g2"/>
<data android:pathPattern=".*\.3gp"/>
<data android:pathPattern=".*\.3gp2"/>
<data android:pathPattern=".*\.3gpp"/>
<data android:pathPattern=".*\.amv"/>
<data android:pathPattern=".*\.asf"/>
<data android:pathPattern=".*\.avi"/>
<data android:pathPattern=".*\.divx"/>
<data android:pathPattern=".*\.drc"/>
<data android:pathPattern=".*\.dv"/>
<data android:pathPattern=".*\.f4v"/>
<data android:pathPattern=".*\.flv"/>
<data android:pathPattern=".*\.gvi"/>
<data android:pathPattern=".*\.gxf"/>
<data android:pathPattern=".*\.ismv"/>
<data android:pathPattern=".*\.iso"/>
<data android:pathPattern=".*\.m1v"/>
<data android:pathPattern=".*\.m2v"/>
<data android:pathPattern=".*\.m2t"/>
<data android:pathPattern=".*\.m2ts"/>
<data android:pathPattern=".*\.m3u8"/>
<data android:pathPattern=".*\.mkv"/>
<data android:pathPattern=".*\.mov"/>
<data android:pathPattern=".*\.mp2"/>
<data android:pathPattern=".*\.mp2v"/>
<data android:pathPattern=".*\.mp4"/>
<data android:pathPattern=".*\.mp4v"/>
<data android:pathPattern=".*\.m4v"/>
<data android:pathPattern=".*\.mpe"/>
<data android:pathPattern=".*\.mpeg"/>
<data android:pathPattern=".*\.mpeg1"/>
<data android:pathPattern=".*\.mpeg2"/>
<data android:pathPattern=".*\.mpeg4"/>
<data android:pathPattern=".*\.mpg"/>
<data android:pathPattern=".*\.mpv2"/>
<data android:pathPattern=".*\.mts"/>
<data android:pathPattern=".*\.mtv"/>
<data android:pathPattern=".*\.mxf"/>
<data android:pathPattern=".*\.mxg"/>
<data android:pathPattern=".*\.nsv"/>
<data android:pathPattern=".*\.nut"/>
<data android:pathPattern=".*\.nuv"/>
<data android:pathPattern=".*\.ogm"/>
<data android:pathPattern=".*\.ogv"/>
<data android:pathPattern=".*\.ogx"/>
<data android:pathPattern=".*\.ps"/>
<data android:pathPattern=".*\.rec"/>
<data android:pathPattern=".*\.rm"/>
<data android:pathPattern=".*\.rmvb"/>
<data android:pathPattern=".*\.tod"/>
<data android:pathPattern=".*\.ts"/>
<data android:pathPattern=".*\.tts"/>
<data android:pathPattern=".*\.vob"/>
<data android:pathPattern=".*\.vro"/>
<data android:pathPattern=".*\.webm"/>
<data android:pathPattern=".*\.wm"/>
<data android:pathPattern=".*\.wmv"/>
<data android:pathPattern=".*\.wtv"/>
<data android:pathPattern=".*\.xesc"/>
<data android:pathPattern=".*\.3G2"/>
<data android:pathPattern=".*\.3GP"/>
<data android:pathPattern=".*\.3GP2"/>
<data android:pathPattern=".*\.3GPP"/>
<data android:pathPattern=".*\.AMV"/>
<data android:pathPattern=".*\.ASF"/>
<data android:pathPattern=".*\.AVI"/>
<data android:pathPattern=".*\.DIVX"/>
<data android:pathPattern=".*\.DRC"/>
<data android:pathPattern=".*\.DV"/>
<data android:pathPattern=".*\.F4V"/>
<data android:pathPattern=".*\.FLV"/>
<data android:pathPattern=".*\.GVI"/>
<data android:pathPattern=".*\.GXF"/>
<data android:pathPattern=".*\.ISMV"/>
<data android:pathPattern=".*\.ISO"/>
<data android:pathPattern=".*\.M1V"/>
<data android:pathPattern=".*\.M2V"/>
<data android:pathPattern=".*\.M2T"/>
<data android:pathPattern=".*\.M2TS"/>
<data android:pathPattern=".*\.M3U8"/>
<data android:pathPattern=".*\.MKV"/>
<data android:pathPattern=".*\.MOV"/>
<data android:pathPattern=".*\.MP2"/>
<data android:pathPattern=".*\.MP2V"/>
<data android:pathPattern=".*\.MP4"/>
<data android:pathPattern=".*\.MP4V"/>
<data android:pathPattern=".*\.M4V"/>
<data android:pathPattern=".*\.MPE"/>
<data android:pathPattern=".*\.MPEG"/>
<data android:pathPattern=".*\.MPEG1"/>
<data android:pathPattern=".*\.MPEG2"/>
<data android:pathPattern=".*\.MPEG4"/>
<data android:pathPattern=".*\.MPG"/>
<data android:pathPattern=".*\.MPV2"/>
<data android:pathPattern=".*\.MTS"/>
<data android:pathPattern=".*\.MTV"/>
<data android:pathPattern=".*\.MXF"/>
<data android:pathPattern=".*\.MXG"/>
<data android:pathPattern=".*\.NSV"/>
<data android:pathPattern=".*\.NUT"/>
<data android:pathPattern=".*\.NUV"/>
<data android:pathPattern=".*\.OGM"/>
<data android:pathPattern=".*\.OGV"/>
<data android:pathPattern=".*\.OGX"/>
<data android:pathPattern=".*\.PS"/>
<data android:pathPattern=".*\.REC"/>
<data android:pathPattern=".*\.RM"/>
<data android:pathPattern=".*\.RMVB"/>
<data android:pathPattern=".*\.TOD"/>
<data android:pathPattern=".*\.TS"/>
<data android:pathPattern=".*\.TTS"/>
<data android:pathPattern=".*\.VOB"/>
<data android:pathPattern=".*\.VRO"/>
<data android:pathPattern=".*\.WEBM"/>
<data android:pathPattern=".*\.WM"/>
<data android:pathPattern=".*\.WMV"/>
<data android:pathPattern=".*\.WTV"/>
<data android:pathPattern=".*\.XESC"/>
<data android:pathPattern=".*\.3ga"/>
<data android:pathPattern=".*\.a52"/>
<data android:pathPattern=".*\.aac"/>
<data android:pathPattern=".*\.ac3"/>
<data android:pathPattern=".*\.adt"/>
<data android:pathPattern=".*\.adts"/>
<data android:pathPattern=".*\.aif"/>
<data android:pathPattern=".*\.aifc"/>
<data android:pathPattern=".*\.aiff"/>
<data android:pathPattern=".*\.amr"/>
<data android:pathPattern=".*\.aob"/>
<data android:pathPattern=".*\.ape"/>
<data android:pathPattern=".*\.awb"/>
<data android:pathPattern=".*\.caf"/>
<data android:pathPattern=".*\.dts"/>
<data android:pathPattern=".*\.flac"/>
<data android:pathPattern=".*\.it"/>
<data android:pathPattern=".*\.m4a"/>
<data android:pathPattern=".*\.m4b"/>
<data android:pathPattern=".*\.m4p"/>
<data android:pathPattern=".*\.mid"/>
<data android:pathPattern=".*\.mka"/>
<data android:pathPattern=".*\.mlp"/>
<data android:pathPattern=".*\.mod"/>
<data android:pathPattern=".*\.mpa"/>
<data android:pathPattern=".*\.mp1"/>
<data android:pathPattern=".*\.mp2"/>
<data android:pathPattern=".*\.mp3"/>
<data android:pathPattern=".*\.mpc"/>
<data android:pathPattern=".*\.mpga"/>
<data android:pathPattern=".*\.oga"/>
<data android:pathPattern=".*\.ogg"/>
<data android:pathPattern=".*\.oma"/>
<data android:pathPattern=".*\.opus"/>
<data android:pathPattern=".*\.ra"/>
<data android:pathPattern=".*\.ram"/>
<data android:pathPattern=".*\.rmi"/>
<data android:pathPattern=".*\.s3m"/>
<data android:pathPattern=".*\.spx"/>
<data android:pathPattern=".*\.tta"/>
<data android:pathPattern=".*\.voc"/>
<data android:pathPattern=".*\.vqf"/>
<data android:pathPattern=".*\.w64"/>
<data android:pathPattern=".*\.wav"/>
<data android:pathPattern=".*\.wma"/>
<data android:pathPattern=".*\.wv"/>
<data android:pathPattern=".*\.xa"/>
<data android:pathPattern=".*\.xm"/>
<data android:pathPattern=".*\.3GA"/>
<data android:pathPattern=".*\.A52"/>
<data android:pathPattern=".*\.AAC"/>
<data android:pathPattern=".*\.AC3"/>
<data android:pathPattern=".*\.ADT"/>
<data android:pathPattern=".*\.ADTS"/>
<data android:pathPattern=".*\.AIF"/>
<data android:pathPattern=".*\.AIFC"/>
<data android:pathPattern=".*\.AIFF"/>
<data android:pathPattern=".*\.AMR"/>
<data android:pathPattern=".*\.AOB"/>
<data android:pathPattern=".*\.APE"/>
<data android:pathPattern=".*\.AWB"/>
<data android:pathPattern=".*\.CAF"/>
<data android:pathPattern=".*\.DTS"/>
<data android:pathPattern=".*\.FLAC"/>
<data android:pathPattern=".*\.IT"/>
<data android:pathPattern=".*\.M4A"/>
<data android:pathPattern=".*\.M4B"/>
<data android:pathPattern=".*\.M4P"/>
<data android:pathPattern=".*\.MID"/>
<data android:pathPattern=".*\.MKA"/>
<data android:pathPattern=".*\.MLP"/>
<data android:pathPattern=".*\.MOD"/>
<data android:pathPattern=".*\.MPA"/>
<data android:pathPattern=".*\.MP1"/>
<data android:pathPattern=".*\.MP2"/>
<data android:pathPattern=".*\.MP3"/>
<data android:pathPattern=".*\.MPC"/>
<data android:pathPattern=".*\.MPGA"/>
<data android:pathPattern=".*\.OGA"/>
<data android:pathPattern=".*\.OGG"/>
<data android:pathPattern=".*\.OMA"/>
<data android:pathPattern=".*\.OPUS"/>
<data android:pathPattern=".*\.RA"/>
<data android:pathPattern=".*\.RAM"/>
<data android:pathPattern=".*\.RMI"/>
<data android:pathPattern=".*\.S3M"/>
<data android:pathPattern=".*\.SPX"/>
<data android:pathPattern=".*\.TTA"/>
<data android:pathPattern=".*\.VOC"/>
<data android:pathPattern=".*\.VQF"/>
<data android:pathPattern=".*\.W64"/>
<data android:pathPattern=".*\.WAV"/>
<data android:pathPattern=".*\.WMA"/>
<data android:pathPattern=".*\.WV"/>
<data android:pathPattern=".*\.XA"/>
<data android:pathPattern=".*\.XM"/>
<data android:pathPattern=".*\.asx"/>
<data android:pathPattern=".*\.ASX"/>
<data android:pathPattern=".*\.m3u"/>
<data android:pathPattern=".*\.M3U"/>
<data android:pathPattern=".*\.pls"/>
<data android:pathPattern=".*\.PLS"/>
<data android:pathPattern=".*\.xspf"/>
<data android:pathPattern=".*\.XSPF"/>
</intent-filter>
</activity>
也尝试在 "code to reproduce the issue"
中使用 "video/mp4" 而不是 "video/*"
Intent intent = new Intent("android.intent.action.VIEW");
intent.setDataAndType(Uri.parse("http://media.w3.org/2010/05/sintel/trailer.mp4"),
"video/mp4");
startActivity(intent);
HTH
已修复!我所要做的就是删除 <category android:name="android.intent.category.BROWSABLE"/>
基本上,当应用分享视频时 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);
这只是棉花糖上的一个问题。
编辑:我应该补充一点,并非所有 Marshmallow 设备都这样做。从我第一次听说它开始,我花了很长时间来重现它,直到有一天它才开始出现在我的 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{
}
编辑:我认为添加屏幕截图可能会使其更加清晰。
这是在我的 Nexus 5 6.0.1 上,列表已完全展开
这是在装有 5.1.1 的 Nexus 4 上,列表也已完全展开
这两款手机的应用几乎完全相同。
为您的 intent-filters
尝试以下方法<activity >
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.BROWSABLE"/>
<data android:scheme="rtmp"/>
<data android:scheme="rtmpe"/>
<data android:scheme="rtmps"/>
<data android:scheme="rtp"/>
<data android:scheme="rtsp"/>
<data android:scheme="mms"/>
<data android:scheme="mmsh"/>
<data android:scheme="icyx"/>
<data android:scheme="httplive"/>
<data android:scheme="udp"/>
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.BROWSABLE"/>
<data android:mimeType="video/*"/>
<data android:mimeType="audio/*"/>
<data android:mimeType="image/*"/>
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.BROWSABLE"/>
<data android:scheme=""/>
<data android:scheme="file"/>
<data android:scheme="ftp"/>
<data android:scheme="content"/>
<data android:scheme="http"/>
<data android:scheme="https"/>
<data android:mimeType="video/*"/>
<data android:mimeType="audio/*"/>
<data android:mimeType="*/rmvb"/>
<data android:mimeType="*/avi"/>
<data android:mimeType="*/mkv"/>
<data android:mimeType="application/3gpp*"/>
<data android:mimeType="application/mp4"/>
<data android:mimeType="application/mpeg*"/>
<data android:mimeType="application/ogg"/>
<data android:mimeType="application/sdp"/>
<data android:mimeType="application/vnd.3gp*"/>
<data android:mimeType="application/vnd.apple.mpegurl"/>
<data android:mimeType="application/vnd.dvd*"/>
<data android:mimeType="application/vnd.dolby*"/>
<data android:mimeType="application/vnd.rn-realmedia*"/>
<data android:mimeType="application/x-iso9660-image"/>
<data android:mimeType="application/x-extension-mp4"/>
<data android:mimeType="application/x-flac"/>
<data android:mimeType="application/x-matroska"/>
<data android:mimeType="application/x-mpegURL"/>
<data android:mimeType="application/x-ogg"/>
<data android:mimeType="application/x-quicktimeplayer"/>
<data android:mimeType="application/x-shockwave-flash"/>
<data android:mimeType="application/xspf+xml"/>
<data android:mimeType="misc/ultravox"/>
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.BROWSABLE"/>
<data android:scheme=""/>
<data android:scheme="file"/>
<data android:scheme="ftp"/>
<data android:scheme="content"/>
<data android:scheme="http"/>
<data android:scheme="https"/>
<data android:host="*"/>
<data android:pathPattern=".*\.3g2"/>
<data android:pathPattern=".*\.3gp"/>
<data android:pathPattern=".*\.3gp2"/>
<data android:pathPattern=".*\.3gpp"/>
<data android:pathPattern=".*\.amv"/>
<data android:pathPattern=".*\.asf"/>
<data android:pathPattern=".*\.avi"/>
<data android:pathPattern=".*\.divx"/>
<data android:pathPattern=".*\.drc"/>
<data android:pathPattern=".*\.dv"/>
<data android:pathPattern=".*\.f4v"/>
<data android:pathPattern=".*\.flv"/>
<data android:pathPattern=".*\.gvi"/>
<data android:pathPattern=".*\.gxf"/>
<data android:pathPattern=".*\.ismv"/>
<data android:pathPattern=".*\.iso"/>
<data android:pathPattern=".*\.m1v"/>
<data android:pathPattern=".*\.m2v"/>
<data android:pathPattern=".*\.m2t"/>
<data android:pathPattern=".*\.m2ts"/>
<data android:pathPattern=".*\.m3u8"/>
<data android:pathPattern=".*\.mkv"/>
<data android:pathPattern=".*\.mov"/>
<data android:pathPattern=".*\.mp2"/>
<data android:pathPattern=".*\.mp2v"/>
<data android:pathPattern=".*\.mp4"/>
<data android:pathPattern=".*\.mp4v"/>
<data android:pathPattern=".*\.m4v"/>
<data android:pathPattern=".*\.mpe"/>
<data android:pathPattern=".*\.mpeg"/>
<data android:pathPattern=".*\.mpeg1"/>
<data android:pathPattern=".*\.mpeg2"/>
<data android:pathPattern=".*\.mpeg4"/>
<data android:pathPattern=".*\.mpg"/>
<data android:pathPattern=".*\.mpv2"/>
<data android:pathPattern=".*\.mts"/>
<data android:pathPattern=".*\.mtv"/>
<data android:pathPattern=".*\.mxf"/>
<data android:pathPattern=".*\.mxg"/>
<data android:pathPattern=".*\.nsv"/>
<data android:pathPattern=".*\.nut"/>
<data android:pathPattern=".*\.nuv"/>
<data android:pathPattern=".*\.ogm"/>
<data android:pathPattern=".*\.ogv"/>
<data android:pathPattern=".*\.ogx"/>
<data android:pathPattern=".*\.ps"/>
<data android:pathPattern=".*\.rec"/>
<data android:pathPattern=".*\.rm"/>
<data android:pathPattern=".*\.rmvb"/>
<data android:pathPattern=".*\.tod"/>
<data android:pathPattern=".*\.ts"/>
<data android:pathPattern=".*\.tts"/>
<data android:pathPattern=".*\.vob"/>
<data android:pathPattern=".*\.vro"/>
<data android:pathPattern=".*\.webm"/>
<data android:pathPattern=".*\.wm"/>
<data android:pathPattern=".*\.wmv"/>
<data android:pathPattern=".*\.wtv"/>
<data android:pathPattern=".*\.xesc"/>
<data android:pathPattern=".*\.3G2"/>
<data android:pathPattern=".*\.3GP"/>
<data android:pathPattern=".*\.3GP2"/>
<data android:pathPattern=".*\.3GPP"/>
<data android:pathPattern=".*\.AMV"/>
<data android:pathPattern=".*\.ASF"/>
<data android:pathPattern=".*\.AVI"/>
<data android:pathPattern=".*\.DIVX"/>
<data android:pathPattern=".*\.DRC"/>
<data android:pathPattern=".*\.DV"/>
<data android:pathPattern=".*\.F4V"/>
<data android:pathPattern=".*\.FLV"/>
<data android:pathPattern=".*\.GVI"/>
<data android:pathPattern=".*\.GXF"/>
<data android:pathPattern=".*\.ISMV"/>
<data android:pathPattern=".*\.ISO"/>
<data android:pathPattern=".*\.M1V"/>
<data android:pathPattern=".*\.M2V"/>
<data android:pathPattern=".*\.M2T"/>
<data android:pathPattern=".*\.M2TS"/>
<data android:pathPattern=".*\.M3U8"/>
<data android:pathPattern=".*\.MKV"/>
<data android:pathPattern=".*\.MOV"/>
<data android:pathPattern=".*\.MP2"/>
<data android:pathPattern=".*\.MP2V"/>
<data android:pathPattern=".*\.MP4"/>
<data android:pathPattern=".*\.MP4V"/>
<data android:pathPattern=".*\.M4V"/>
<data android:pathPattern=".*\.MPE"/>
<data android:pathPattern=".*\.MPEG"/>
<data android:pathPattern=".*\.MPEG1"/>
<data android:pathPattern=".*\.MPEG2"/>
<data android:pathPattern=".*\.MPEG4"/>
<data android:pathPattern=".*\.MPG"/>
<data android:pathPattern=".*\.MPV2"/>
<data android:pathPattern=".*\.MTS"/>
<data android:pathPattern=".*\.MTV"/>
<data android:pathPattern=".*\.MXF"/>
<data android:pathPattern=".*\.MXG"/>
<data android:pathPattern=".*\.NSV"/>
<data android:pathPattern=".*\.NUT"/>
<data android:pathPattern=".*\.NUV"/>
<data android:pathPattern=".*\.OGM"/>
<data android:pathPattern=".*\.OGV"/>
<data android:pathPattern=".*\.OGX"/>
<data android:pathPattern=".*\.PS"/>
<data android:pathPattern=".*\.REC"/>
<data android:pathPattern=".*\.RM"/>
<data android:pathPattern=".*\.RMVB"/>
<data android:pathPattern=".*\.TOD"/>
<data android:pathPattern=".*\.TS"/>
<data android:pathPattern=".*\.TTS"/>
<data android:pathPattern=".*\.VOB"/>
<data android:pathPattern=".*\.VRO"/>
<data android:pathPattern=".*\.WEBM"/>
<data android:pathPattern=".*\.WM"/>
<data android:pathPattern=".*\.WMV"/>
<data android:pathPattern=".*\.WTV"/>
<data android:pathPattern=".*\.XESC"/>
<data android:pathPattern=".*\.3ga"/>
<data android:pathPattern=".*\.a52"/>
<data android:pathPattern=".*\.aac"/>
<data android:pathPattern=".*\.ac3"/>
<data android:pathPattern=".*\.adt"/>
<data android:pathPattern=".*\.adts"/>
<data android:pathPattern=".*\.aif"/>
<data android:pathPattern=".*\.aifc"/>
<data android:pathPattern=".*\.aiff"/>
<data android:pathPattern=".*\.amr"/>
<data android:pathPattern=".*\.aob"/>
<data android:pathPattern=".*\.ape"/>
<data android:pathPattern=".*\.awb"/>
<data android:pathPattern=".*\.caf"/>
<data android:pathPattern=".*\.dts"/>
<data android:pathPattern=".*\.flac"/>
<data android:pathPattern=".*\.it"/>
<data android:pathPattern=".*\.m4a"/>
<data android:pathPattern=".*\.m4b"/>
<data android:pathPattern=".*\.m4p"/>
<data android:pathPattern=".*\.mid"/>
<data android:pathPattern=".*\.mka"/>
<data android:pathPattern=".*\.mlp"/>
<data android:pathPattern=".*\.mod"/>
<data android:pathPattern=".*\.mpa"/>
<data android:pathPattern=".*\.mp1"/>
<data android:pathPattern=".*\.mp2"/>
<data android:pathPattern=".*\.mp3"/>
<data android:pathPattern=".*\.mpc"/>
<data android:pathPattern=".*\.mpga"/>
<data android:pathPattern=".*\.oga"/>
<data android:pathPattern=".*\.ogg"/>
<data android:pathPattern=".*\.oma"/>
<data android:pathPattern=".*\.opus"/>
<data android:pathPattern=".*\.ra"/>
<data android:pathPattern=".*\.ram"/>
<data android:pathPattern=".*\.rmi"/>
<data android:pathPattern=".*\.s3m"/>
<data android:pathPattern=".*\.spx"/>
<data android:pathPattern=".*\.tta"/>
<data android:pathPattern=".*\.voc"/>
<data android:pathPattern=".*\.vqf"/>
<data android:pathPattern=".*\.w64"/>
<data android:pathPattern=".*\.wav"/>
<data android:pathPattern=".*\.wma"/>
<data android:pathPattern=".*\.wv"/>
<data android:pathPattern=".*\.xa"/>
<data android:pathPattern=".*\.xm"/>
<data android:pathPattern=".*\.3GA"/>
<data android:pathPattern=".*\.A52"/>
<data android:pathPattern=".*\.AAC"/>
<data android:pathPattern=".*\.AC3"/>
<data android:pathPattern=".*\.ADT"/>
<data android:pathPattern=".*\.ADTS"/>
<data android:pathPattern=".*\.AIF"/>
<data android:pathPattern=".*\.AIFC"/>
<data android:pathPattern=".*\.AIFF"/>
<data android:pathPattern=".*\.AMR"/>
<data android:pathPattern=".*\.AOB"/>
<data android:pathPattern=".*\.APE"/>
<data android:pathPattern=".*\.AWB"/>
<data android:pathPattern=".*\.CAF"/>
<data android:pathPattern=".*\.DTS"/>
<data android:pathPattern=".*\.FLAC"/>
<data android:pathPattern=".*\.IT"/>
<data android:pathPattern=".*\.M4A"/>
<data android:pathPattern=".*\.M4B"/>
<data android:pathPattern=".*\.M4P"/>
<data android:pathPattern=".*\.MID"/>
<data android:pathPattern=".*\.MKA"/>
<data android:pathPattern=".*\.MLP"/>
<data android:pathPattern=".*\.MOD"/>
<data android:pathPattern=".*\.MPA"/>
<data android:pathPattern=".*\.MP1"/>
<data android:pathPattern=".*\.MP2"/>
<data android:pathPattern=".*\.MP3"/>
<data android:pathPattern=".*\.MPC"/>
<data android:pathPattern=".*\.MPGA"/>
<data android:pathPattern=".*\.OGA"/>
<data android:pathPattern=".*\.OGG"/>
<data android:pathPattern=".*\.OMA"/>
<data android:pathPattern=".*\.OPUS"/>
<data android:pathPattern=".*\.RA"/>
<data android:pathPattern=".*\.RAM"/>
<data android:pathPattern=".*\.RMI"/>
<data android:pathPattern=".*\.S3M"/>
<data android:pathPattern=".*\.SPX"/>
<data android:pathPattern=".*\.TTA"/>
<data android:pathPattern=".*\.VOC"/>
<data android:pathPattern=".*\.VQF"/>
<data android:pathPattern=".*\.W64"/>
<data android:pathPattern=".*\.WAV"/>
<data android:pathPattern=".*\.WMA"/>
<data android:pathPattern=".*\.WV"/>
<data android:pathPattern=".*\.XA"/>
<data android:pathPattern=".*\.XM"/>
<data android:pathPattern=".*\.asx"/>
<data android:pathPattern=".*\.ASX"/>
<data android:pathPattern=".*\.m3u"/>
<data android:pathPattern=".*\.M3U"/>
<data android:pathPattern=".*\.pls"/>
<data android:pathPattern=".*\.PLS"/>
<data android:pathPattern=".*\.xspf"/>
<data android:pathPattern=".*\.XSPF"/>
</intent-filter>
</activity>
也尝试在 "code to reproduce the issue"
中使用 "video/mp4" 而不是 "video/*"Intent intent = new Intent("android.intent.action.VIEW");
intent.setDataAndType(Uri.parse("http://media.w3.org/2010/05/sintel/trailer.mp4"),
"video/mp4");
startActivity(intent);
HTH
已修复!我所要做的就是删除 <category android:name="android.intent.category.BROWSABLE"/>