我正在使用RingtoneManager,显然在一些手机上它一直都会返回null。我知道如果声音没有声音或者找不到声音,它会返回null。如果声音打开并且有声音,为什么会返回null?代码工作在我的歌Nexus S ....RingtoneManager返回null铃声
这里是我使用的是什么:
Ringtone ringtone;
ringtone = RingtoneManager.getRingtone(context, RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION));
if(ringtone == null)
{
Log.d("Debug", "ringtone is null");
}
else
{
ringtone.play();
}
我启用了所有权限播放铃声(它的工作原理我的电话),甚至有SD卡的权限以防万一铃声在SD卡上。有什么想法吗?
根据RingtoneManager的源代码,getRingtone返回null的唯一情况是无法打开给定URI处的铃声。它也应该在logcat中放入''无法打开铃声'+ ringtoneUri'。你在logcat输出中看到这样的行吗? – 2011-11-10 16:19:36
不是我的,但有些用户抱怨铃声不能触发。在我进行NULL检查之前,由于指针被解除引用而崩溃了。我唯一能想到的是它不能得到一个URI ......但我不知道为什么当他们有一个有效的铃声时它无法做到这一点。也许是资源锁定? – atomicbaum 2011-12-01 23:33:01