我创建一个应用程序仅用于私人用途......这不是那么重要,那么,尊重你的时间: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