SDCard权限设置
最近在做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目錄的讀寫權限修改完成??稍谄渲袑胛募?/p>
其它命令:
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,復制到上面的目錄中。 最后最后,再重啟模擬器,大功告成!總結
以上是生活随笔為你收集整理的SDCard权限设置的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 相亲聊什么?想要避免尬聊,就从这6个话题
- 下一篇: php游戏实例,php实现的简易扫雷游戏