使用场景
当保存图片、音视频等至自定义目录(非系统相册)下时,系统相册中并不能立即看到,此时需要手动刷新Media Store
原理
发送 ACTION_MEDIA_SCANNER_SCAN_FILE
广播
此方法仅对单个文件有效,多个文件需要调用多次
安卓原生写法
val filename = "Your_Created_Image_File_Path"
val contentUri = Uri.fromFile(File(filename))
val mediaScanIntent = Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE,contentUri)
sendBroadcast(mediaScanIntent)
nativejs写法
function refreshMediaStore (filename) {
const File = plus.android.newObject('java.io.File', filename)
const Uri = plus.android.invoke('android.net.Uri', 'fromFile', File)
const Intent = plus.android.importClass('android.content.Intent')
const mediaScanIntent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, Uri)
const main = plus.android.runtimeMainActivity()
main.sendBroadcast(mediaScanIntent)
}
注意
filename
应是以 Environment.getExternalStorageDirectory()
的返回值开头,也就是扩展卡的根路径
const Environment = plus.android.importClass('android.os.Environment')
const root = plus.android.invoke(Environment.getExternalStorageDirectory(), 'getAbsolutePath')
5 个评论
要回复文章请先登录或注册
辣条人
为什么不百度
paper_ (作者)
paper_ (作者)
y***@trans-cosmos.com.cn