无法访问Android上的文件

编辑:当我试图实施建议的解决方案发生异常。 请在下面查看其他信息。 如果可以的话,请帮助我,在此先感谢!

好了,我终于得到了我的应用程序来创建和最近写入文件。

在模拟器上这个完美的作品。 然而,当我应用程序上传到我的电话,并尝试adb shell到我的手机。 我无法去包含文件我的手机上的目录。

该目录是/data/data/cpe495.smartapp/files/ 。 当我试图改变它的目录告诉我,我没有权限。

我假设这是因为我没有做我的手机扎根,并在root帐户我不是。 生根我的手机是不是我会怎么做。

有没有办法,我可以创建这个文件,并写入它,并能够在路adb pull它关闭我的电话的? 下面是我创建该文件的当前方式:

fOut = tThis.openFileOutput("test.csv", tThis.MODE_APPEND);

提前致谢!!

仍然没有工作

我已经添加下面的代码我的应用程序,当我运行它,当它试图将文件写入失败,出现以下错误的SD卡,请帮助我!

String inFileName = "/data/data/cpe495.smartapp/files/test.csv"; //TODO Use folder/filename File inFile = new File(inFileName); try{ FileInputStream fis = new FileInputStream(inFile); String outFileName = Environment.getExternalStorageDirectory()+"/test.csv"; //TODO Use output filename OutputStream output = new FileOutputStream(outFileName); byte[] buffer = new byte[1024]; int length; while ((length = fis.read(buffer))>0) output.write(buffer, 0, length); output.flush(); output.close(); fis.close(); } catch (Exception e) { e.printStackTrace(); }



04-05 23:20:11.551: WARN/System.err(285): java.io.FileNotFoundException: /mnt/sdcard/test.csv (Permission denied) 04-05 23:20:11.582: WARN/System.err(285): at org.apache.harmony.luni.platform.OSFileSystem.openImpl(Native Method) 04-05 23:20:11.593: WARN/System.err(285): at org.apache.harmony.luni.platform.OSFileSystem.open(OSFileSystem.java:152) 04-05 23:20:11.601: WARN/System.err(285): at java.io.FileOutputStream.<init>(FileOutputStream.java:97) 04-05 23:20:11.601: WARN/System.err(285): at java.io.FileOutputStream.<init>(FileOutputStream.java:168) 04-05 23:20:11.612: WARN/System.err(285): at java.io.FileOutputStream.<init>(FileOutputStream.java:147) 04-05 23:20:11.622: WARN/System.err(285): at cpe495.smartapp.SmartApp$8.onClick(SmartApp.java:162) 04-05 23:20:11.622: WARN/System.err(285): at android.view.View.performClick(View.java:2408) 04-05 23:20:11.632: WARN/System.err(285): at android.view.View$PerformClick.run(View.java:8816) 04-05 23:20:11.632: WARN/System.err(285): at android.os.Handler.handleCallback(Handler.java:587) 04-05 23:20:11.642: WARN/System.err(285): at android.os.Handler.dispatchMessage(Handler.java:92) 04-05 23:20:11.642: WARN/System.err(285): at android.os.Looper.loop(Looper.java:123) 04-05 23:20:11.685: WARN/System.err(285): at android.app.ActivityThread.main(ActivityThread.java:4627) 04-05 23:20:11.685: WARN/System.err(285): at java.lang.reflect.Method.invokeNative(Native Method) 04-05 23:20:11.692: WARN/System.err(285): at java.lang.reflect.Method.invoke(Method.java:521) 04-05 23:20:11.702: WARN/System.err(285): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 04-05 23:20:11.702: WARN/System.err(285): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 04-05 23:20:11.711: WARN/System.err(285): at dalvik.system.NativeStart.main(Native Method)

--------------解决方案-------------

你说得对需要root权限来访问该文件。

作为一种变通方法,您可以创建一个活动或测试函数,该文件到SD卡拷贝,这样就可以读取它。

编辑-这个答案包含了将文件复制到SD卡中的示例代码。

更新-上面的回答,你需要在你的后清单<manifest ... >标签:

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

分类:机器人 时间:2012-08-17 人气:0
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 1.162 (s). 10 q(s)