Runt
2025-07-25 fefe89781718c2bca0990a289928464d637a6b41
libmvi/src/main/java/com/runt/open/mvi/base/BaseActivity.kt
@@ -2,6 +2,8 @@
import android.Manifest
import android.app.ActivityManager
import android.content.ClipData
import android.content.ClipboardManager
import android.content.ContentResolver
import android.content.Context
import android.content.Intent
@@ -29,7 +31,6 @@
import androidx.activity.result.contract.ActivityResultContracts
import androidx.annotation.ColorRes
import androidx.annotation.StringRes
import androidx.collection.ArraySet
import androidx.core.content.ContextCompat
import androidx.lifecycle.Observer
import androidx.lifecycle.ViewModelProvider
@@ -398,22 +399,26 @@
                    var message = "";
                    if(permissions.contains(Manifest.permission.READ_EXTERNAL_STORAGE)){
                        title = "申请文件读取权限";
                        message = "通过文件读取权限后,可无障碍使用图片、音乐、视频并添加到直播的音视频流中"
                        message = "     通过文件读取权限后,可无障碍使用图片类、音乐类、视频类文件,并将读取的文件数据添加到直播中的音视频流中。"
                    }else if(permissions.contains(Manifest.permission.CAMERA)){
                        title = "申请相机权限";
                        message = "通过相机权限后,可将相机画面添加到直播画面流中"
                        message = "     通过相机权限后,可无障碍使用相机及USB采集设备,并将设备采集的画面添加到直播中的视频流中。"
                    }else if(permissions.contains(Manifest.permission.RECORD_AUDIO)){
                        title = "申请话筒权限";
                        message = "通过话筒权限后,可将话筒声音添加到直播声音流中"
                    }else if(permissions.contains(Manifest.permission.READ_MEDIA_IMAGES)){
                        message = "     通过话筒权限后,可无障碍使用话筒设备,并将话筒采集的音频数据添加到直播中的音频流中"
                    }else if(permissions.contains(Manifest.permission.READ_MEDIA_IMAGES) ||
                        permissions.contains(Manifest.permission.READ_MEDIA_VIDEO)){
                        title = "申请图片和视频文件权限";
                        message = "通过图片和视频文件权限后,可将图片和视频画面添加到直播画面流中"
                        message = "     通过图片类和视频类文件权限后,可将读取的图片和视频数据添加到直播中的音视频流中。"
                    }/*else if(permissions.contains(Manifest.permission.READ_MEDIA_IMAGES)){
                        title = "申请图片文件权限";
                        message = "通过图片类文件权限后,可将读取的图片数据添加到直播中的视频流中。"
                    }else if(permissions.contains(Manifest.permission.READ_MEDIA_VIDEO)){
                        title = "申请图片和视频文件权限";
                        message = "通过图片和视频文件权限后,可将图片和视频画面添加到直播画面流中"
                    }else if(permissions.contains(Manifest.permission.READ_MEDIA_AUDIO)){
                        title = "申请视频文件权限";
                        message = "通过视频类文件权限后,可将读取的视频数据添加到直播中的音视频流中。"
                    }*/else if(permissions.contains(Manifest.permission.READ_MEDIA_AUDIO)){
                        title = "申请音频文件权限";
                        message = "通过音频文件权限后,可将音频文件的声音添加到直播声音流中"
                        message = "     通过音频文件权限后,可将音频文件的声音添加到直播中的音频流中"
                    }/*else if(permissions.contains(Manifest.permission.POST_NOTIFICATIONS)){
                        title = "申请通知栏权限";
                        message = "通过通知栏权限后,可开启后台服务,保证相机、话筒、截屏、扬声器等功能不被系统终止"
@@ -468,6 +473,14 @@
        showToast(getString(msg))
    }
    fun copyStr(str:String){
        // 获取系统剪贴板
        val clipboard = getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager
        // 创建一个剪贴数据集,包含一个普通文本数据条目(需要复制的数据)
        val clipData = ClipData.newPlainText(null ,str)
        // 把数据集设置(复制)到剪贴板
        clipboard.setPrimaryClip(clipData)
    }
    /**
     * 获取文件保存路径 sdcard根目录/download/文件名称
     * @param fileUrl
@@ -542,7 +555,7 @@
    }
    fun getStringSetProjectPrefrence(key : String) : Set<*> {
        return getStringSetProjectPrefrence(key, ArraySet<Any?>() )
        return getStringSetProjectPrefrence(key, HashSet<Any?>() )
    }
    fun getStringSetProjectPrefrence(key : String,value : Set<*>?) : Set<*> {
@@ -574,7 +587,7 @@
    }
    fun getStringSetUserPrefrence(key : String) : Set<*> {
        return getStringSetUserPrefrence(key,ArraySet<Any?>())
        return getStringSetUserPrefrence(key,HashSet<Any?>())
    }
    fun getStringSetUserPrefrence(key : String,value : Set<*>) : Set<*> {