Android私有目录文件移动到公有目录

本文介绍了在Android系统中,从私有目录移动拍照照片到公共目录以适应Android10和Android11的变化。在Android10上,通过清单文件设置可直接读写公共目录,而在Android11上,需要请求《所有文件访问权限》。提供了相应代码示例来实现文件复制,并讨论了用户体验的优化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

背景:今天早上做了一个拍照后就上传到后台的需求,这个需求还是蛮好处理的,不就是拍照嘛,信誓旦旦说等会就打包出来,结果引发了思考,搞到了下午才打包。

拍照

/**
 * 拍照
 */
private fun toTakePicture() {
   
    currentTakePhotoTime = System.currentTimeMillis()
    val takeIntent = Intent(MediaStore.ACTION_IMAGE_CAPTURE)
    
    val file = getTakePicktureFile()
    Log.i(TAG, file.path)
    val uri = getUriForFile(file)
    takeIntent.putExtra(MediaStore.EXTRA_OUTPUT, uri)
    startActivityForResult(takeIntent, REQUESTCODE_FILECHOOSER)
}

/**
 * 指定调用相机拍照后的照片存储的路径
 */
private fun getTakePicktureFile(): File {
   
    val imageJpg = "webimage_$currentTakePhotoTime.jpg"
    return if (Build.VERSION.SDK_INT < Build.VERSION_CODES.Q) {
   
        File(getPhotoParent(), imageJpg)
    } else {
   
        File(
            getExternalFilesDir(Environment.DIRECTORY_PICTURES),
            imageJpg
        )
    }
}

//根据file获取Uri
private fun getUriForFile(file: File
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

TenTenXu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值