在我需要root的Android应用程序中,我需要能够将文件复制到SD卡或从SD卡复制文件。在大多数情况下,需要root权限。我遇到的问题是
cp -fp <source> <destination>
<destination>
或<source>
包含Environment.getExternalStorageDirectory()
时,无效
阅读日志,我注意到No such file or directory
但是,当复制到SD卡时,我确保在shell中运行命令之前在函数中创建目录,并且从SD卡复制时,文件存在。
是否有其他方法可以复制shell中的文件(我已尝试cp
,busybox cp
和cat
)?
或者是否有另一种方法可以直接获取SD卡上文件位置的路径?
答案 0 :(得分:1)
在我提出问题之后,实际上设法解决了这个问题。有关信息Environment.getExternalStorageDirectory()
正在返回/storage/emulated/0/
将Environment.getExternalStorageDirectory()
替换为/sdcard/
一切正常。
编辑1:
用Environment.getExternalStorageDirectory()
替换/sdcard/
会导致设备限制(正如下面的鞋鼠所指出的那样)。通过android.os.Environment
筛选我的另一个可用替代System.getenv("EXTERNAL_STORAGE")
。一切仍然完全正常。