我在运行Android 4.2的Nexus 4上播放铃声时遇到了问题。
当我尝试播放铃声时,我看到了以下异常信息:
java.lang.NullPointerException at android.media.Ringtone.play(Ringtone.java:228)
我的代码如下:
RingtoneManager ringtoneManager = new RingtoneManager(context);
ringtoneManager.setType(AudioManager.STREAM_NOTIFICATION);
Ringtone ringtone = ringtoneManager.getRingtone(index);
Ringtone ringtone.setStreamType(AudioManager.STREAM_NOTIFICATION);
if (ringtone != null)
{
ringtone.play();
}
根据用户选择(我向他们展示铃声列表),索引值传递到我的方法中。无论我将其设置为什么,行为始终相同,这没有任何影响。
在我的两个运行2.3和4.0.4的其他设备上运行时,此代码完美运行。
调试时,我可以看到Ringtone Manager返回的铃声中的URI为null,并且在我的其他设备上设置为有效值。
我是否做错了什么,或者这可能是4.2中的错误?