gpt4 book ai didi

java - 在 ADB Shell 和 DDMS 中 chmod 后 Android 权限不变

转载 作者:行者123 更新时间:2023-12-01 13:12:12 31 4
gpt4 key购买 nike

我使用 DDMS 发送到模拟的 Android 设备 SD 卡,我什至可以在 DDMS 中看到这些。文件名是 POS1.pngPOS2.png。 SD卡路径为/storage/sdcard/foldername

在我的代码中,我想检查我的文件是否为File(),所以我已经写了

String filepath = "/storage/sdcard/foldername/POS1.png";
File file = new File(filepath);

if (!file.isFile()){
//do something
}
else{
//do something else
}

if 条件始终返回 true(即文件不是文件)。我认为这可能是一个权限问题(文件的当前权限是 u=>rwxg=>rwx),所以我尝试更改来自 adb shell 的文件:

  1. 我在模拟器中启动了我的程序
  2. 打开cmd(在Windows上。adb的路径已在环境中设置)
  3. 输入以下代码

C:\> adb shell
root@generic:/# su
输出:su
root@generic:/# chmod -R 777/storage/sdcard/foldername/
输出: chmod -R 777/storage/sdcard/foldername/
root@generic:/# ls -l/storage/sdcard/foldername/
权限仍然显示相同。即使在 DDMS 中,它们也是相同的。我什至重新启动了设备和 eclipse,没有任何变化。我也尝试了以下变体:
root@generic:/# chmod -R 777/storage/sdcard/foldername/*
root@generic:/# chmod -R 777/storage/sdcard/foldername/*.png
root@generic:/# chmod 777/storage/sdcard/foldername/POS1.png
使用 u+rwx/g+rwx/o+rwx/a+rwx 代替 777 给我一条“错误模式”消息

提前感谢您的帮助!

编辑:所以我使用以下代码来检查异常:

try {
FileInputStream fis = null;
fis = new FileInputStream("/storage/sdcard/foldername/POS1.png");
} catch (IOException e) {
Log.e("openfile", "Exception:"+e.getMessage());
}

我收到消息打开失败:EACCES(权限被拒绝)”

最佳答案

您需要此权限:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

另外,看看这个 link有关 API 19 及更高版本的一些注意事项。

关于java - 在 ADB Shell 和 DDMS 中 chmod 后 Android 权限不变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22760750/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com