当前位置: 代码迷 >> Android >> 请教怎么在/data/data/目录下创建文件
  详细解决方案

请教怎么在/data/data/目录下创建文件

热度:127   发布时间:2016-05-01 21:51:14.0
请问如何在/data/data/目录下创建文件?
我想在/data/data/目录下创建一个aaa文件,用adb push的命令可以push进去,
可是当我用代码实现的时候,执行到
new File("data/data/aaa").createNewFile();
的时候,就会出现
01-01 03:04:21.730: WARN/System.err(19592): java.io.IOException: Permission denied
01-01 03:04:21.730: WARN/System.err(19592): at java.io.File.createNewFileImpl(Native Method)
01-01 03:04:21.730: WARN/System.err(19592): at java.io.File.createNewFile(File.java:1160)
01-01 03:04:21.730: WARN/System.err(19592): at com.eric.ECompassCalibrator.createFile(ECompassCalibrator.java:256)
01-01 03:04:21.730: WARN/System.err(19592): at com.eric.ECompassCalibrator.onCreate(ECompassCalibrator.java:98)
01-01 03:04:21.730: WARN/System.err(19592): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
01-01 03:04:21.730: WARN/System.err(19592): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
01-01 03:04:21.730: WARN/System.err(19592): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
01-01 03:04:21.730: WARN/System.err(19592): at android.app.ActivityThread.access$2300(ActivityThread.java:125)
01-01 03:04:21.730: WARN/System.err(19592): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
01-01 03:04:21.730: WARN/System.err(19592): at android.os.Handler.dispatchMessage(Handler.java:99)
01-01 03:04:21.730: WARN/System.err(19592): at android.os.Looper.loop(Looper.java:123)
01-01 03:04:21.730: WARN/System.err(19592): at android.app.ActivityThread.main(ActivityThread.java:4627)
01-01 03:04:21.734: WARN/System.err(19592): at java.lang.reflect.Method.invokeNative(Native Method)
01-01 03:04:21.734: WARN/System.err(19592): at java.lang.reflect.Method.invoke(Method.java:521)
01-01 03:04:21.734: WARN/System.err(19592): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
01-01 03:04:21.734: WARN/System.err(19592): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
01-01 03:04:21.734: WARN/System.err(19592): at dalvik.system.NativeStart.main(Native Method)

是不是我有什么权限没有加啊?小弟在此请教各位高手了!谢谢!

------解决方案--------------------
把工程的包名加上 包名为COM.a new File("data/data/com.a/aaa").createNewFile();
------解决方案--------------------
一般设备,没有拿到root权限的话,是不能随意写/data/目录的
不过有一个例外,就是app的默认目录,即/data/data/<package name>
所以4楼的同学说得对,一般情况下,那个目录,加上/data/local/tmp,加/sdcard/是不多的几个可写目录
  相关解决方案