diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/LiveActivity.java b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/LiveActivity.java index a187adf6b..29a950b7d 100644 --- a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/LiveActivity.java +++ b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/LiveActivity.java @@ -4,7 +4,6 @@ import android.annotation.SuppressLint; import android.content.Context; import android.content.Intent; import android.graphics.drawable.Drawable; -import android.net.Uri; import android.support.v4.media.MediaMetadataCompat; import android.view.KeyEvent; import android.view.View; @@ -379,7 +378,7 @@ public class LiveActivity extends BaseActivity implements GroupPresenter.OnClick intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); intent.putExtra("headers", mPlayers.getHeaderArray()); intent.putExtra("title", mBinding.widget.name.getText()); - intent.setDataAndType(Uri.parse(mPlayers.getUrl()), "video/*"); + intent.setDataAndType(mPlayers.getUri(), "video/*"); startActivity(Util.getChooser(intent)); return true; } diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/VideoActivity.java b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/VideoActivity.java index 7e7b586e5..a534a6655 100644 --- a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/VideoActivity.java +++ b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/VideoActivity.java @@ -880,7 +880,7 @@ public class VideoActivity extends BaseActivity implements CustomKeyDownVod.List intent.putExtra("headers", mPlayers.getHeaderArray()); intent.putExtra("position", (int) mPlayers.getPosition()); intent.putExtra("title", mBinding.widget.title.getText()); - intent.setDataAndType(Uri.parse(mPlayers.getUrl()), "video/*"); + intent.setDataAndType(mPlayers.getUri(), "video/*"); startActivityForResult(Util.getChooser(intent), 1001); return true; } diff --git a/app/src/main/java/com/fongmi/android/tv/player/Players.java b/app/src/main/java/com/fongmi/android/tv/player/Players.java index 99754c8e8..ee11f44bd 100644 --- a/app/src/main/java/com/fongmi/android/tv/player/Players.java +++ b/app/src/main/java/com/fongmi/android/tv/player/Players.java @@ -32,6 +32,7 @@ import com.fongmi.android.tv.event.ErrorEvent; import com.fongmi.android.tv.event.PlayerEvent; import com.fongmi.android.tv.impl.ParseCallback; import com.fongmi.android.tv.impl.SessionCallback; +import com.fongmi.android.tv.utils.FileUtil; import com.fongmi.android.tv.utils.Notify; import com.fongmi.android.tv.utils.ResUtil; import com.fongmi.android.tv.utils.UrlUtil; @@ -171,6 +172,10 @@ public class Players implements Player.Listener, IMediaPlayer.Listener, Analytic return url; } + public Uri getUri() { + return getUrl().startsWith("file://") || getUrl().startsWith("/") ? FileUtil.getShareUri(getUrl()) : Uri.parse(getUrl()); + } + public void clean() { this.headers = null; this.url = null; diff --git a/app/src/main/java/com/fongmi/android/tv/utils/FileUtil.java b/app/src/main/java/com/fongmi/android/tv/utils/FileUtil.java index 5e39748ce..795914d91 100644 --- a/app/src/main/java/com/fongmi/android/tv/utils/FileUtil.java +++ b/app/src/main/java/com/fongmi/android/tv/utils/FileUtil.java @@ -60,7 +60,11 @@ public class FileUtil { }); } - private static Uri getShareUri(File file) { + public static Uri getShareUri(String path) { + return getShareUri(new File(path.replace("file://", ""))); + } + + public static Uri getShareUri(File file) { return Build.VERSION.SDK_INT < Build.VERSION_CODES.N ? Uri.fromFile(file) : FileProvider.getUriForFile(App.get(), App.get().getPackageName() + ".provider", file); } diff --git a/app/src/main/res/xml/file_paths.xml b/app/src/main/res/xml/file_paths.xml index 136e6e260..cfd91bf45 100644 --- a/app/src/main/res/xml/file_paths.xml +++ b/app/src/main/res/xml/file_paths.xml @@ -1,6 +1,7 @@ + diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/activity/LiveActivity.java b/app/src/mobile/java/com/fongmi/android/tv/ui/activity/LiveActivity.java index 6416863ba..58153791b 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/ui/activity/LiveActivity.java +++ b/app/src/mobile/java/com/fongmi/android/tv/ui/activity/LiveActivity.java @@ -6,7 +6,6 @@ import android.content.Intent; import android.content.pm.ActivityInfo; import android.content.res.Configuration; import android.graphics.drawable.Drawable; -import android.net.Uri; import android.os.Build; import android.os.Bundle; import android.support.v4.media.MediaMetadataCompat; @@ -436,7 +435,7 @@ public class LiveActivity extends BaseActivity implements CustomKeyDownLive.List intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); intent.putExtra("headers", mPlayers.getHeaderArray()); intent.putExtra("title", mBinding.control.title.getText()); - intent.setDataAndType(Uri.parse(mPlayers.getUrl()), "video/*"); + intent.setDataAndType(mPlayers.getUri(), "video/*"); startActivity(Util.getChooser(intent)); setRedirect(true); return true; diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/activity/VideoActivity.java b/app/src/mobile/java/com/fongmi/android/tv/ui/activity/VideoActivity.java index 0f0592d1a..7aed8f452 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/ui/activity/VideoActivity.java +++ b/app/src/mobile/java/com/fongmi/android/tv/ui/activity/VideoActivity.java @@ -891,7 +891,7 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo intent.putExtra("headers", mPlayers.getHeaderArray()); intent.putExtra("position", (int) mPlayers.getPosition()); intent.putExtra("title", mBinding.control.title.getText()); - intent.setDataAndType(Uri.parse(mPlayers.getUrl()), "video/*"); + intent.setDataAndType(mPlayers.getUri(), "video/*"); startActivityForResult(Util.getChooser(intent), 1001); setRedirect(true); return true;