RingtoneManager有时会返回错误的铃声

时间:2015-06-29 12:52:39

标签: android

我有几个铃声,随APK文件一起分发,并按以下方式访问

    Ringtone r = RingtoneManager.getRingtone(mContext, uri);

    if (r != null) {
        r.setStreamType(AudioManager.STREAM_NOTIFICATION);
        r.play();
    }

在大多数情况下,这可以按预期工作,但在某些设备系统中播放不应该播放的错误铃声。经过简短的调查后,我发现RingtoneManager.getRingtone方法的文档说明了

 If the given URI cannot be opened for any reason, this method will attempt to fallback on another sound. If it cannot find any, it will return null.

这意味着我无法确定返回的铃声是我要求的铃声。所以我的问题是我怎么能至少验证getRingtone方法是否已经返回另一个(默认)铃声,这样我至少可以不播放它?

提前致谢。

1 个答案:

答案 0 :(得分:0)

看起来RingtoneManager的整个工作就是做回落,所以如果这不是你想要的,可以考虑使用android.media.MediaPlayer播放你的音频。