我试图测试从SDCard上的文件中读取的代码。为此,我想将示例文件加载到我的模拟器的SD卡上。我相信我可以通过将文件推送到模拟设备的文件夹来安装Android设备监视器,但是哪一个?我似乎能够将文件放到模拟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....
答案 0 :(得分:0)
您必须检查Android 6.0中添加的运行时权限,现在还不足以在安装应用时询问权限。
这很容易,在尝试加载数据库文件之前,您必须检查READ_EXTERNAL_STORAGE
权限,如果他们被授予,您可以继续。在official docs中,您有关于如何检查和请求运行时权限的更多信息。
其他方法是创建一个API低于23的Android Virtual Device
,以便测试代码而无需添加运行时权限,但在发布之前,您应该添加它们。