2017-04-27 110 views
0

我正嘗試在我的android設備的外部存儲(sdcard)中創建一個文件,並在該文件中執行讀取和寫入操作。但我無法通過我的應用程序訪問SD卡。在Android應用程序中無法訪問外部SD卡

我正在使用android棉花糖。

我給你許可我menifest:

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

當我使用Environment.getExternalStorageDirectory()它給我/storage/emulated/0路徑,在這我可以成功讀取和寫入。

但我想執行讀取和寫入在我的外部SD卡上安裝在/storage/6161-3432。並且我無法執行此類操作。

我也嘗試用JNI代碼,它可以打開文件並在特定路徑中執行操作。在這裏我也可以訪問我的/storage/emulated/0路徑,但不能訪問我的SD卡路徑/storage/6161-3432

那麼我如何使用我的應用程序訪問外部SD卡?

+0

什麼是操作系統的版本你正在使用的測試應用程序?如果您的模擬器/設備操作系統大於23> =那麼您必須動態分配權限。 –

+0

'動態分配權限'。沒有什麼可分配的。您需要代碼才能讓應用的用戶確認權限。 – greenapps

+0

'我想執行讀寫我的外部sdcard'。如果您使用其中一個答案,您將只能在SD卡的特定目錄中讀寫。對於卡片的其餘部分,您只能閱讀。沒有需要的權限。 – greenapps

回答

1

使用下面的代碼,它會給你一切可能的存儲選項的列表在您的手機: -

File[] filesDirectory = context.getExternalFilesDirs(name); 
+0

謝謝你的回覆。我試過你的方式,但'文件[] filesDirectory = context.getExternalFilesDirs(名稱);'不工作在我的Android Studio。所以我使用File [] filesDirectory = getBaseContext()。getExternalFilesDirs(「/ storage/XXXX-XXXX」); \t \t \t \t對(INT I = 0; I Hiren

+0

正在測試哪個Android版本。 –

+0

或嘗試使用File [] Dirs = ContextCompat.getExternalFilesDirs(MyApp.GetContext(),null); –

相關問題