此代码可在Android 4.4.2上使用,但不能在装有Android 9的手机上使用:
String url="http://...LINK...mp4";
MediaController controller = new MediaController(context);
controller.setMediaPlayer(holder.video);
Uri videoUri = Uri.parse(url);
holder.video.setVideoURI(videoUri);
holder.video.requestFocus();
holder.video.start();
在Android 9上,我收到错误消息(在Android 4.4.2上没有错误):
Couldn't open http://...LINK...mp4: java.io.FileNotFoundException: No content provider: http://...LINK...mp4
如何解决?
答案 0 :(得分:1)
Android 9.0 blocks cleartext (http
) traffic by default。
首选解决方案是不使用http
URL,而使用https
。
您可以通过网络安全配置,告诉Android允许您的应用使用明文通信,但这并不安全。
答案 1 :(得分:0)
您可以在清单文件中使用一行代码。它对我有用。
<application
android:usesCleartextTraffic="true"
android:label="@string/app_name"
android:supportsRtl="true">
<activity
android:name=".EvaBotView"
android:theme="@style/AppTheme.NoActionBar"
android:configChanges="keyboardHidden|orientation|screenSize"/>
</application>
在内部应用程序标签中,我们可以使用 android:usesCleartextTraffic =“ true” 来解决此问题。