基本上,当一个应用程序共享一个视频网址时,我的应用程序应该显示在列表中,但它并不存在。 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);
这只是Marshmallow的一个问题。
编辑:我应该补充一点,并非所有的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{
}
编辑:我认为添加截图可能会更清晰。
两部手机都有完全相同的应用程序。
答案 0 :(得分:8)
修正了它!我所要做的就是删除<category android:name="android.intent.category.BROWSABLE"/>
答案 1 :(得分:2)
请尝试以下for 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>
在“代码重现问题”中尝试使用“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);
HTHS