Kin*_*lmn 12 android file-permissions
我试图在我的应用程序中保存内部私有存储区域(应用程序用户首选项)上的简单文本文件中的一些数据.我在这里阅读了很多问题(StackOverflow)并尝试了建议的解决方案但没有成功.看来,最简单的解决方案是这里建议的解决方案:
http ://developer.android.com/guide/topics/data/data-storage.html#filesInternal
但我无法在我的测试设备上使用它.我还尝试使用java.io.File中提供的方法和适当的方法创建该文件.我也尝试在SDCard上创建具有相同结果的文件,失败.我已经尝试了其他答案中列出的许多解决方案,遵循完全建议的代码和说明并找到相同的结果.我开始觉得我错过了一些重要的代码或某个设置标志,我在清单文件中设置了权限:
<uses-permission
android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
Run Code Online (Sandbox Code Playgroud)
为了清楚起见,我正在尝试写入设备的内部私有存储.它是一个包含姓名,电话号码和几个类型int标志的小文件.无论我使用什么方法,我发现文件没有创建(或者如果我手动将文件放在SDCard上,则更改),或者当我尝试引用文件或文件位置时,我得到NullPointerException:
private File fILE = new File("Mydata", main.FILENAME);
Run Code Online (Sandbox Code Playgroud)
要么
private File fILE = getDir("Mydata", 0);
Run Code Online (Sandbox Code Playgroud)
我在HTC Hero上运行代码,更新了Sprint的最新服务版本.任何帮助将非常感谢,提前致谢!
史蒂夫
更新(2/2/11):使用EVO(API 8)我仍然得到NullPointerException.产生异常的代码如下,有关我的应用无法访问内部存储的原因的任何想法?我在使用两个API级别(API 7和8)的三个不同物理设备上遇到此问题.
File newfile = new File(this.getFilesDir() + "/data/files/", "sample.txt");
Run Code Online (Sandbox Code Playgroud)
更新2:2/4/11 - 我发现在任何情况下我都无法在物理设备(数据目录)上看到文件结构.有没有人对此有任何想法?设备已正确配置,可以从eclipse或adb运行应用程序.
更新3:(2/9/11) - 我想我可能已经找到了问题所在,但我不确定如何处理它.我已经发现物理设备上/ data /目录的权限是:drwxrwx--x.我不知道为什么会这样,也许与Sprint有关?我已经在Sprint的HTC Hero,三星Epic(Galaxy S)和HTC EVO上找到了这种方式.问题似乎是DDMS和我的应用程序没有r/w访问该目录.我需要弄清楚这里有两件事,为什么会这样,以及如何在野外解决这个问题.再次,这里的任何帮助将是真棒!
更新4:我认为去年2月对我来说是一个完美的金发时刻(见更新3).我拥有的测试设备没有ROOT,因此没有访问权限(DUH!).经过SGS和EVO 4G的所有更新后,结果仍然相同.我仍然在解决这个问题,并且很快就会尝试回到这里(希望下次不到一年).
小智 5
尝试更改以下行:
File newfile = new File(this.getFilesDir() + "/data/files/", "sample.txt");
Run Code Online (Sandbox Code Playgroud)
至:
File newfile = new File(this.getFilesDir() + "/","sample.txt");
Run Code Online (Sandbox Code Playgroud)
不是对您问题的直接回答,但尽管如此:我注意到您不想在文件中存储大量数据。使用共享首选项是否是一个足够的替代方案?
也许更有趣的是:即使您写入共享首选项文件,问题也会发生吗?
http://developer.android.com/guide/topics/data/data-storage.html#pref
| 归档时间: |
|
| 查看次数: |
81288 次 |
| 最近记录: |