2017-04-24 39 views
0

我想測試代碼,從一個SD卡文件中讀取加載測試文件上的SD卡。爲此,我想將示例文件加載到我的模擬器的SDCard上。我相信我可以通過將文件推送到模擬設備的文件夾來執行此操作,但是哪一個?我似乎能夠把文件到SD卡模擬,看看他們模擬器設置\存儲和USB \ SD卡上,但我的代碼報告找不到文件。有什麼建議嗎?我在Mac上使用Android studio v2.3.1。這裏是我的代碼:如何使用Android設備監控

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

你們是不是它在Android 6.0版(API 23)或上? –

+0

你好,是的,它的Android 6,API23 – MPH

+0

我增加了一個回答你的問題,希望它有助於 –

回答

0

您必須檢查它其中的Android 6.0增加運行權限,現在」不是個足夠在安裝應用程序時請求權限。

這是很容易,試圖加載數據庫文件之前,你必須檢查READ_EXTERNAL_STORAGE許可,如果他們被授予你可以繼續。在official docs中,您有關於如何檢查和請求運行時權限的更多信息。

其他方法是創建一個帶有低於23的API的Android Virtual Device,以便在不必添加運行時權限的情況下測試您的代碼,但在發佈之前您應該添加它們。

+0

嘿感謝。我添加了一個運行時權限檢查到我的應用主要爲READ_EXTERNAL_STORAGE權限,我可以看到,我得到「0」(PERMISSION_GRANTED)回來。但是,當我嘗試打開文件時,仍然收到File Not Found IOException。從ADM的角度來看,我應該在哪裏放置我的測試文件?謝謝 – MPH

+0

所以可能的問題是文件路徑。使用'file.getAbsolutePath();'從'file'變量中打印路徑,並檢查它是否與存儲文件的地方匹配。我無法告訴你確切的路徑,因爲它在特定條件下通常是不同的。 –