Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/193.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Android设备监视器将测试文件加载到SD卡上_Android_Android Sdcard_Android Device Monitor - Fatal编程技术网

如何使用Android设备监视器将测试文件加载到SD卡上

如何使用Android设备监视器将测试文件加载到SD卡上,android,android-sdcard,android-device-monitor,Android,Android Sdcard,Android Device Monitor,我正在测试从SD卡上的文件读取的代码。为此,我想将一个示例文件加载到模拟器的SD卡上。我相信我可以通过Android设备监视器将文件推送到模拟设备的文件夹中来实现这一点,但是哪一个呢?我似乎能够将文件放在模拟SD卡上,并在emulator settings\storage和USB\SD卡上看到它们,但我的代码报告找不到文件。有什么建议吗?我正在Mac上使用Android studio v2.3.1。这是我的密码: File dir = Environment.getExternalSto

我正在测试从SD卡上的文件读取的代码。为此,我想将一个示例文件加载到模拟器的SD卡上。我相信我可以通过Android设备监视器将文件推送到模拟设备的文件夹中来实现这一点,但是哪一个呢?我似乎能够将文件放在模拟SD卡上,并在emulator settings\storage和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....


你必须检查Android 6.0中添加的运行时权限,现在在安装应用程序时不足以请求权限

这很容易,在尝试加载DB文件之前,您必须检查
读取外部存储
权限,如果他们被授予,您可以继续。在中,您可以了解有关如何检查和请求运行时权限的更多信息


另一种方法是创建一个API低于23的
Android虚拟设备
,以便在不需要添加运行时权限的情况下测试您的代码,但在发布之前,您应该添加它们。

您是在Android 6.0版(API 23)或更高版本中尝试吗?您好,是的,这是Android 6,API23I为您的问题添加了答案,希望对你有帮助谢谢。我已将运行时权限检查添加到我的应用程序main中,以获得读取外部存储权限,我可以看到我正在恢复“0”(已授予权限)。但是,当我尝试打开文件时,仍然会收到一个文件未找到IOException。从ADM的角度来看,我应该把测试文件放在哪里?谢谢,问题可能出在文件路径上。使用
file.getAbsolutePath()从
文件
变量打印路径
并检查它是否与存储文件的位置匹配。我不能告诉你确切的路径,因为在某些条件下它通常是不同的。