Android 9.0 SD卡权限管理更为严格,在项目测试中遇到以下问题:

[步骤]

1.在图库中删除T卡上的图片或者视频,在文件管理中查看还存在

2.在视频应用中删除视频情况一样

[备注]重启手机后,再次进入图库重新加载进来

跟踪调试发现,是SD卡写权限被禁,用户无法对SD卡内容进行操作。

原文分析

https://blog.csdn.net/shift_wwx/article/details/85633801

修改方法:

增加-w 权限,下面第二个加上去的。

alps_p0_mp2\update\alps\system\vold\model\PublicVolume.cpp

if (!(mFusePid = fork())) {

if (getMountFlags() & MountFlags::kPrimary) {

if (execl(kFusePath, kFusePath,

"-u", "1023", // AID_MEDIA_RW

"-g", "1023", // AID_MEDIA_RW

"-U", std::to_string(getMountUserId()).c_str(),

"-w",

mRawPath.c_str(),

stableName.c_str(),

NULL)) {

PLOG(ERROR) << "Failed to exec";

}

} else {

if (execl(kFusePath, kFusePath,

"-u", "1023", // AID_MEDIA_RW

"-g", "1023", // AID_MEDIA_RW

"-U", std::to_string(getMountUserId()).c_str(),

"-w",//add by   for add sdcard permission 就是这样

mRawPath.c_str(),

stableName.c_str(),

NULL)) {

PLOG(ERROR) << "Failed to exec";

}

}

这样操作之后SD卡就有了写权限,用户可以对SD卡中数据进行操作。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐