SDCard权限设置(结合上一篇)

来源:互联网 发布:淘宝虎扑识货推荐店铺 编辑:程序博客网 时间:2024/06/06 05:56

最近在做Android项目,发现之前能对sdcard卡进行读写操作突然不能了,细找之下,发现如下修改权限途径:
设置DDMS(File Explorer)目录下的sdcard目录的权限

1、打开cmd命令   
2、输入adb shell(成功后进入adb的root用户状态#) 
3、你可以用 ls 命令看下当前文件夹下目录,你会发现sdcard目录在这下面
4、修改sdcard权限,因为此时sdcard是only-read的状态,
5、修改目录命令:chmod 075 (不要直接用777,不能成功执行的) 
6、sdcard目录的读写权限修改完成。可在其中导入文件。

其它命令:
adb shell mount -o remount rw /
注意,/表示的是根目录,因此这个不仅仅是对sdcard,其他文件也可以读写。rw表示读写权限,mount重挂载文件系统

如图:



程序中访问SDCard,需要申请访问SDCard权限,在AndroidManifest.xml加入访问SDCard权限

如下:
<!-- 在SDCard中创建与删除文件权限 -->
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>

<!-- 往SDCard写入数据权限 -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

得到当前SDCARD的位置
Environment.getExternalStorageDirectory()

这个是外部存储路径,比使用绝对路径好 。

在android模拟器中删除系统应用程序

首先启动android模拟器。打开cmd命令行窗口。输入adb -s emulator-5554 shell
此时可以管理系统文件夹了,再输入ls
可以看到列出了文件夹和文件,输入cd system/app再输入ls
可以看到系统自带的应用程序apk文件,删除你想要删除的,例如Phone.apk,输入rm Phone.apk
此时会看到提示说rm failed for Phone.apk, Read-only file system那是因为这些是只读文件,我们没有权限删除它。所以接下来要做的是获取权限,首先查看权限,输入mount
可以看到/dev/block/mtdblock0 /system yaffs2 ro 0 0说明在system这个地方我们没有权限那么接下来我们就来获取权限,输入mount -o remount,rw -t yaffs2 /dev/block/mtdblock0 /system
没有提示错误,再次查看权限,输入mount
可以看到/dev/block/mtdblock0 /system yaffs2 rw 0 0说明我们已经获取到权限了此时再输入rm Phone.apk就可以成功删除了
最后一点,就算你成功删除了,android模拟器每次启动时也会恢复回来。
那么如何永久删除呢,很简单,删除SdkSetup.apk,输入rm SdkSetup.apk
还没完,找到avd目录(一般在我的文档),进入xxxx.avd目录,删除cache.img和userdata-qemu.img
还有还有,找到%SDK_HOME%/platforms/android-X/images/system.img,复制到上面的目录中。
最后最后,再重启模拟器,大功告成!

0 0
原创粉丝点击