| | |
| | | |
| | | import android.Manifest |
| | | import android.app.ActivityManager |
| | | import android.app.UiModeManager |
| | | import android.content.ClipData |
| | | import android.content.ClipboardManager |
| | | import android.content.ContentResolver |
| | | import android.content.Context |
| | | import android.content.Intent |
| | | import android.content.pm.PackageManager |
| | | import android.content.res.Configuration |
| | | import android.net.Uri |
| | | import android.os.Build |
| | | import android.os.Bundle |
| | |
| | | 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 |
| | |
| | | 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 = "通过通知栏权限后,可开启后台服务,保证相机、话筒、截屏、扬声器等功能不被系统终止" |
| | |
| | | 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 |
| | |
| | | appDir.mkdirs() |
| | | } |
| | | return storePath + File.separator + fileName |
| | | } |
| | | |
| | | fun isTabletDevice(): Boolean { |
| | | val uiModeManager = getSystemService(Context.UI_MODE_SERVICE) as UiModeManager |
| | | return (uiModeManager.currentModeType == Configuration.UI_MODE_TYPE_TELEVISION).not() && |
| | | (resources.configuration.screenLayout and Configuration.SCREENLAYOUT_SIZE_MASK >= Configuration.SCREENLAYOUT_SIZE_LARGE) |
| | | } |
| | | |
| | | //=========================================== |
| | |
| | | } |
| | | |
| | | fun getStringSetProjectPrefrence(key : String) : Set<*> { |
| | | return getStringSetProjectPrefrence(key, ArraySet<Any?>() ) |
| | | return getStringSetProjectPrefrence(key, HashSet<Any?>() ) |
| | | } |
| | | |
| | | fun getStringSetProjectPrefrence(key : String,value : Set<*>?) : Set<*> { |
| | |
| | | } |
| | | |
| | | fun getStringSetUserPrefrence(key : String) : Set<*> { |
| | | return getStringSetUserPrefrence(key,ArraySet<Any?>()) |
| | | return getStringSetUserPrefrence(key,HashSet<Any?>()) |
| | | } |
| | | |
| | | fun getStringSetUserPrefrence(key : String,value : Set<*>) : Set<*> { |