如何使用Android设备监视器将测试文件加载到SD卡上
我正在测试从SD卡上的文件读取的代码。为此,我想将一个示例文件加载到模拟器的SD卡上。我相信我可以通过Android设备监视器将文件推送到模拟设备的文件夹中来实现这一点,但是哪一个呢?我似乎能够将文件放在模拟SD卡上,并在emulator settings\storage和USB\SD卡上看到它们,但我的代码报告找不到文件。有什么建议吗?我正在Mac上使用Android studio v2.3.1。这是我的密码:如何使用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
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()从文件
变量打印路径
并检查它是否与存储文件的位置匹配。我不能告诉你确切的路径,因为在某些条件下它通常是不同的。