无法在模拟器

时间:2015-05-27 03:00:47

标签: android file-io android-emulator android-sdcard

我的应用程序中存在一些问题。

我只是想读取SD卡中的文件,所以我把文件放在/ storage / sdcard / abcd(我用adb制作的文件夹)中的模拟器中。 文件名是" 1.14P",我确认它在该路径中。它的许可是770。

但我的问题是,我无法通过应用程序访问SD卡。

sampleFile = new File (Environment.getExternalStorageDirectory(), "abcd/1.14P");
sampleFile.exists()                     //return false

sampleFile2 = new File (Environment.getExternalStorageDirectory(), "tttt");
sampleFile2.mkdir()                  //return false

我认为Sdcard安装得很好。

String state = Environment.getExternalStorageState();    //return "mounted"

我允许但我无法访问SD卡。这是我的manifest.xml。 (部分)

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.hu.test004" >
<uses-permission android:name="ANDROID.PERMISSION.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="ANDROID.PERMISSION.READ_EXTERNAL_STORAGE"/>
<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
...(Activities)

我无法理解为什么会这样。请给我一些帮助。感谢。

3 个答案:

答案 0 :(得分:2)

已解决::我已经知道了! 问题是,我用大写字母声明了权限,因此App没有授予权限。

我改变了

Address

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

并获得许可。

感谢您的支持。

答案 1 :(得分:0)

我认为“,”是问题的一部分。另一个是“exists()”用于目录,而不是文件。

见这里:

new File(path) always actually creates a file on android?

与文档相反:

http://developer.android.com/reference/java/io/File.html

您可能希望改为使用isFile()

答案 2 :(得分:0)

您可以尝试添加&#34; /&#34;在你的名字前? 例如&#34; /abcd/1.14P"