0

我正在尝试测试从 SDCard 上的文件读取的代码。为此,我想将一个示例文件加载到我的模拟器的 SDCard 上。我相信我可以通过将文件推送到模拟设备的文件夹来使用 Android Device Monitor 来做到这一点,但是哪一个呢?我似乎能够将文件放到模拟的 SD 卡上,并在模拟器设置 \ 存储和 USB \ SD 卡上看到它们,但我的代码报告文件未找到。请问有什么建议吗?我在 Mac 上使用 Android Studio v2.3.1。这是我的代码:

    File dir = Environment.getExternalStorageDirectory();
    File file = new File(dir,"dtcontrol.xml");

    StringBuilder text = new StringBuilder();

    try {
        BufferedReader br = new BufferedReader(new FileReader(file));
        String line;

        while ((line = br.readLine()) != null) {
            text.append(line);
            text.append('\n');
        }
        br.close();
    }
    catch (IOException e) {
        e.printStackTrace();
        return;
    }

我的清单具有权限,我相信这将使我能够访问 SD 卡:

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
etc....
4

1 回答 1

0

您必须检查在 Android 6.0 中添加的运行时权限,现在在安装应用程序时询问权限是不够的。

这很容易,在尝试加载数据库文件之前,您必须检查READ_EXTERNAL_STORAGE权限,如果他们被授予您可以继续。在官方文档中,您有更多关于如何检查和请求运行时权限的信息。

其他方法是创建一个Android Virtual DeviceAPI 低于 23 的 API,以便在无需添加运行时权限的情况下测试您的代码,但在发布之前您应该添加它们。

于 2017-04-24T16:16:46.580 回答