diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 5b56746..5ff7689 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -31,6 +31,7 @@ + = USB_KEYWORDS): String? { var targetpath: String? = "" val mStorageManager = mContext .getSystemService(Context.STORAGE_SERVICE) as StorageManager @@ -30,9 +34,8 @@ object StorageUtils { val storageVolumeElement: StorageVolume = result[i] val userLabel = getUserLabel.invoke(storageVolumeElement) as String val path = getPath.invoke(storageVolumeElement) as String - if (userLabel.contains(keyword) || userLabel.contains("U 盘")) { + if (keywords.contains(userLabel)) targetpath = path - } } } catch (e: ClassNotFoundException) { e.printStackTrace() diff --git a/library-push/src/main/java/com/yinuo/library/vlc/encoder/CameraHelper.java b/library-push/src/main/java/com/yinuo/library/vlc/encoder/CameraHelper.java index 6655e46..3aea6ad 100644 --- a/library-push/src/main/java/com/yinuo/library/vlc/encoder/CameraHelper.java +++ b/library-push/src/main/java/com/yinuo/library/vlc/encoder/CameraHelper.java @@ -1,12 +1,21 @@ package com.yinuo.library.vlc.encoder; +import static com.common.commonlib.utils.StorageUtilsKt.NVME_KEYWORDS; + import android.annotation.TargetApi; import android.app.Activity; +import android.content.Context; import android.hardware.Camera; import android.os.Build; import android.os.Environment; +import android.text.TextUtils; import android.view.Surface; +import androidx.annotation.Nullable; + +import com.common.commonlib.CommonApplication; +import com.common.commonlib.utils.StorageUtils; + import java.io.File; import java.text.SimpleDateFormat; import java.util.List; @@ -187,14 +196,8 @@ public class CameraHelper { public static File getOutputMediaFile(int type, long time, long duration) { // To be safe, you should check that the SDCard is mounted // using Environment.getExternalStorageState() before doing this. - if (!Environment.getExternalStorageState().equalsIgnoreCase(Environment.MEDIA_MOUNTED)) { - return null; - } - - File mediaStorageDir = Environment.getExternalStoragePublicDirectory("video"); - if (!mediaStorageDir.exists() && !mediaStorageDir.mkdirs()) { - return null; - } + File mediaStorageDir = getMediaStorageDir(); + if (mediaStorageDir == null) return null; // Create a media file name SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHmmss", Locale.CHINA); @@ -213,4 +216,29 @@ public class CameraHelper { return mediaFile; } + + @Nullable + private static File getMediaStorageDir() { + Context context = CommonApplication.Companion.getContext(); + if (context != null) { + String nvmePath = StorageUtils.INSTANCE.getStoragePath(context, NVME_KEYWORDS); + if (!TextUtils.isEmpty(nvmePath)) { + File mediaStorageDir = new File(nvmePath + File.separator + "video"); + if (!mediaStorageDir.exists() && !mediaStorageDir.mkdirs()) { + return null; + } + return mediaStorageDir; + } else { + if (!Environment.getExternalStorageState().equalsIgnoreCase(Environment.MEDIA_MOUNTED)) { + return null; + } + File mediaStorageDir = Environment.getExternalStoragePublicDirectory("video"); + if (!mediaStorageDir.exists() && !mediaStorageDir.mkdirs()) { + return null; + } + return mediaStorageDir; + } + } + return null; + } }