我創建一個應用程序僅用於私人用途......這不是那麼重要,那麼,尊重你的時間:PAndroid應用無法讀取外部存儲文件
我想提出的是一個應用程序,從數據庫讀取並播放聲音。我已經創建了數據庫,並且能夠從res/raw文件夾中播放聲音。但是,有數以千計的文件可以播放,並且一些新文件將成爲應用程序的一部分,而其他文件將在未來刪除。所以,添加一個簡單的文件會讓我每次下載整個應用程序(〜1 GB)(或者我錯了?)。相反,我想讀一個Excel文件,然後從SD卡播放聲音。但是我不能......據我所知:
應用程序不允許寫(刪除,修改...)到外部存儲 除了其特定的軟件包的目錄。
我把文件放到/存儲/模擬/ 0 /安卓/數據/ my_package_folder /文件夾。我讀過很多話題,沒有任何幫助。
Environment.MEDIA_MOUNTED.equals(extStorageState) //returns true
Environment.MEDIA_MOUNTED_READ_ONLY.equals(extStorageState) //returns false
我試圖創建新的文件對象或與媒體播放器播放聲音的一些方法(如我以前說過的,有擺弄RES/RAW文件沒問題),但file.exists總是返回虛假或聲音不玩:
String filePath = getExternalFilesDir(null) + "/myfile.mp3"; //returns correct file path
File file = new File(filePath);
OR
File file = new File(getExternalFilesDir(null).getPath(), "myfile.mp3");
OR
MediaPlayer mp;
mp = MediaPlayer.create(this, Uri.parse(getExternalFilesDir(null).getPath() + "/myfile.mp3"));
中的minSdkVersion設置爲19,所以我並不需要在清單該行:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
我已經包含了該行並沒有什麼改變:
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
我也試圖與其他文件擴展名一起做。另外,從here解決方案沒有幫助。我的手機是Samsung Galaxy Grand Prime(SM-G530FZ),Android v 5.0.2。請幫助! :)
什麼是你的targetSdk? – Nisarg
targetSdkVersion 23 – kuznikowski
檢查我的答案是否有幫助:) – Nisarg