diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/DetailActivity.java b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/DetailActivity.java index 591b21d45..8cd15300c 100644 --- a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/DetailActivity.java +++ b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/DetailActivity.java @@ -122,6 +122,7 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis } public static void file(FragmentActivity activity, String path) { + if (TextUtils.isEmpty(path)) return; String name = new File(path).getName(); if (Utils.hasPermission(activity)) start(activity, "push_agent", "file://" + path, name, true); else PermissionX.init(activity).permissions(Manifest.permission.WRITE_EXTERNAL_STORAGE).request((allGranted, grantedList, deniedList) -> start(activity, "push_agent", "file://" + path, name, true)); diff --git a/app/src/main/java/com/fongmi/android/tv/utils/FileChooser.java b/app/src/main/java/com/fongmi/android/tv/utils/FileChooser.java index 969431c30..99895dee5 100644 --- a/app/src/main/java/com/fongmi/android/tv/utils/FileChooser.java +++ b/app/src/main/java/com/fongmi/android/tv/utils/FileChooser.java @@ -56,7 +56,7 @@ public class FileChooser { if (DocumentsContract.isDocumentUri(context, uri)) path = getPathFromDocumentUri(context, uri); else if (ContentResolver.SCHEME_CONTENT.equals(uri.getScheme())) path = getDataColumn(context, uri); else if (ContentResolver.SCHEME_FILE.equalsIgnoreCase(uri.getScheme())) path = uri.getPath(); - return path != null ? path : createFileFromUri(context, uri).getAbsolutePath(); + return path != null ? path : createFileFromUri(context, uri); } private static String getPathFromDocumentUri(Context context, Uri uri) { @@ -100,7 +100,7 @@ public class FileChooser { } } - private static File createFileFromUri(Context context, Uri uri) { + private static String createFileFromUri(Context context, Uri uri) { String[] projection = {MediaStore.MediaColumns.DISPLAY_NAME}; Cursor cursor = context.getContentResolver().query(uri, projection, null, null, null); try (cursor) { @@ -115,7 +115,7 @@ public class FileChooser { while ((count = is.read(buffer)) != -1) os.write(buffer, 0, count); os.close(); is.close(); - return file; + return file.getAbsolutePath(); } catch (Exception e) { return null; } diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/activity/DetailActivity.java b/app/src/mobile/java/com/fongmi/android/tv/ui/activity/DetailActivity.java index b935bb95d..b56f4fac4 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/ui/activity/DetailActivity.java +++ b/app/src/mobile/java/com/fongmi/android/tv/ui/activity/DetailActivity.java @@ -133,6 +133,7 @@ public class DetailActivity extends BaseActivity implements Clock.Callback, Cust } public static void file(FragmentActivity activity, String path) { + if (TextUtils.isEmpty(path)) return; String name = new File(path).getName(); if (Utils.hasPermission(activity)) start(activity, "push_agent", "file://" + path, name); else PermissionX.init(activity).permissions(Manifest.permission.WRITE_EXTERNAL_STORAGE).request((allGranted, grantedList, deniedList) -> start(activity, "push_agent", "file://" + path, name));