十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
Android 9.0 SD卡权限管理更为严格,在项目测试中遇到以下问题:
公司主营业务:成都做网站、成都网站制作、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。创新互联公司是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。创新互联公司推出南山免费做网站回馈大家。
[步骤]
1.在图库中删除T卡上的图片或者视频,在文件管理中查看还存在
2.在视频应用中删除视频情况一样
[备注]重启手机后,再次进入图库重新加载进来
跟踪调试发现,是SD卡写权限被禁,用户无法对SD卡内容进行操作。
原文分析
修改方法:
增加-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卡中数据进行操作。
SDCard可说是移动设备的储存命脉,其运用的3C产品最普及、明显的是相机,从 CF-SD-MiniSD-MicroSD的演变,大概就是体积越来越小、速度越来越快,手机等移动设备步入智能系统后,对高容量与速度的需求更是不在话下,尤其Android系统的更视SD卡为亲密的伙伴。
未自制分割区SD卡的更换
一般更换SD卡并没有什么特别,除非你有建立不同的分割区,不然其实就是将旧卡上所有的数据复制到新SD卡即可。
1.建议使用读卡器,将旧SD卡内所有文件和文件夹,全部复制至计算机硬盘上。
2.在读卡器换上新的SD卡,在将刚刚复制计算机上的文件与文件夹全部复制到新的SD卡上。
3.安装新的SD卡至手机上。
4.开机进行测试,先查看SD卡的状况与空间、照相与安装软件可否储存至SD卡、执行先前安装的软件是否正常等(根据我的经验,绝大部分都可以正常运作)。
有自制分割区SD卡的更换
可惜Android 2.1之前的版本,其应用程序无法安装于SD卡上,简直是中看不重用,因此第三方ROM纷纷支持应用程序安装于SD卡上,所以才会掀起一波Root与刷 ROM的热潮。首先要了解一些名词,因为看到很多机友对这个概念不理解,刚开始我也是一头雾水,其实都是一些缩写,主要的意思就是 Application To SD卡,就是说让应用安装于SD卡上。
app2sd : google官方Android系统官方的方案,但Android 2.2以上才支持,可让支持的程序装到SD卡内,在“设置”“应用程序”“管理应用程序”上的“于SD卡内”标签, 就可以知道那些程序装到SD卡内。
a2sd : 也有人将视为 app2sd 的简称。
a2sd+ : 一般都是非官方ROM才有支持,我的Desirer就是为了这功能而刷ROM的,其实原理很简单,就是将SD卡上分割ext的分割区,且将这个分割区连结变成ROM的延伸,如此一来手机上的ROM空间变大了,而且安装应用程序都自动装到SD卡的'ext分割区上。
对于ROM空间不够大,又不想手动搬移至SD卡的动作,当你有刷第三方的ROM时,制作A2SD+用的存储卡,是相当不错的抉择,也因此制作 EXT2/3/4分割区得以延伸ROM空间,是解除旧款手机封印最佳方式,所以更换SD卡就不是复制与贴上那么简单,首先还是必须制作出与原先相同的分割区类型才行。如何制作A2SD+用的SD卡呢?所以介绍另一套免费版的MiniTool Partition Wizard Home Edition 7.0,此免费版可以分割EXT4,请从这里下载,其操作上大同小异,记得EXT4分割区最好是1GB空间以上。
将新的SD卡放入读卡器插入USB孔,下载MiniTool Partition Wizard Home Edition 7.0后解压缩并执行,下图可以看到已找到的SD卡,在SD卡上按下鼠标右键并选择“Move/Resize”。
在最后的按着不放向左移动拖曳(红色箭头),此时蓝色横向区块会减少,其减少的数量就是绿色框上的值,蓝色箭头上绿色框就是要分割EXT4的地方,拖曳到想要的容量后按下“OK”。
在刚才挪出的空间上按下鼠标右键,并选择“Create”。
绿色框内指定分割的文件系统为EXT4按下“OK”。
选按红色框内的“Apply”图示,接着按下“Yes”即开始运作制作ext4分割区。
制作完成后此新的SD卡上会有FAT32有ext2/3/4分割区,若你有linux系统,其实就是将旧卡上每个分割区内所有的数据复制到新SD卡即可。
1.建议使用读卡器,将旧SD卡上的FAT32与ext2/3/4分割区内所有文件和文件夹,分别复制至计算机硬盘上。
2.在读卡器换上新的SD卡,在将分别复制计算机上的两个分割区上的内容,分别复制到新的SD卡FAT32与ext2/3/4分割区内。
3.安装新的SD卡至手机上。
4.开机进行测试,先查看SD卡的状况与空间、照相与安装软件可否储存至SD卡、执行先前安装的软件是否正常等(根据我的经验,绝大部分都可以正常运作)。
没有Linux的怎么办?说实在的,也不是每个人会Linux,再说有使用a2sd+的SD卡大部分都是Root过且刷过第三方自制ROM的手机,因此也一定有安装过clockworkmod recovery程序,你可以仅旧SD卡上FAT32复制到新SD卡的FAT32内,至于EXT2/3/4分割区内的资料,可以使用 clockworkmod recovery内的backup功能,因为SD卡上分割ext的分割区,就是被辨识成ROM的延伸区,所以也会backup起来,只要将backup完的文件复制到新的SD卡上,再利用clockworkmod recovery内的restore功能即可还原。
Android系统要把应用程序安装到SD卡上,需要手机的操作系统和应用程序都支持才行。如果您进入程序管理中,能看到选项“移至SD卡”,那么您就可以把程序安装到SD卡上,节约手机的内存空间。如果没有这个选项,那么就只能把程序安装到手机内存中。您需要随时注意,不要超过手机的内存空间哦。(上述内容仅适用于广东联通用户)
若使用的是vivo手机,SD卡(TF卡)即是手机储存的扩展卡,主要用来扩展手机的储存空间。
系统会自动读取插入的外置sd卡里的文件内容,你打开手机的文件管理器,在文件类型栏里点任意一种类型,比如视频,你就能看到sd卡里所有的视频文件了。
1、安卓手机点击打开设置。
2、打开进入设置页面后,找到应用管理,并点击进入。
3、点击进入应用管理页面后,找到要移动的应用后,点击打开。
4、点击打开进入应用信息页面后,点击移至SD卡,就可以把应用移动到SD卡上了。