有时,File.exists()会为系统铃声返回false

时间:2013-05-30 12:06:41

标签: android ringtone

我收到了用户关于音乐并不总是在播放的日志。奇怪的是,原因似乎是缺少系统铃声文件。

文件路径为/system/media/audio/alarms/Alarm_Classic.ogg

我将它加载到MediaPlay:

mp.setDataSource(context, Uri.parse(Uri.encode(fileInfo)));
mp.prepareAsync();

这导致MediaPlayer's onError(1,-2147483648)。为了记录目的,我正在检查文件是否存在:

File file = new File(fileInfo);
if (!file.exists()) {
   //log
}

发送的日志表明该文件实际上已丢失。很奇怪,考虑到前几天播放得很好,用户说他没有对文件做任何事情。

手机是搭载Android 4.2.2的Galaxy Nexus。

任何可能导致描述行为的想法?看起来像阅读权限的随机问题 - 这可能是一个已知的错误吗?

1 个答案:

答案 0 :(得分:-1)

您是否拥有外部存储空间权限?

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