我使用的是RingtoneManager,显然在某些手机上它总是返回null。我知道如果声音是静音或者找不到音调,它会返回null。如果声音打开并且有音调,为什么会返回null?代码可以在我的nexus上运行...
下面是我正在使用的:
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卡上。有什么想法吗?
发布于 2013-01-13 18:31:21
我只是陷入了问题所在。如果用户有"Silent“样的通知发声功能:
RingtoneManager.getRingtone(context, RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION))返回null。这就解释了为什么只有一些用户发现了这个问题。
发布于 2014-01-12 23:43:41
如果您将存储在外部存储器上的声音复制到您的手机上,RingtoneManager将无法打开它,除非您的应用程序具有访问外部存储器的权限。
将缺少的权限添加到清单文件:
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
我花了一些时间才弄明白这一点,而没有得到一些用户在他们的设备上的风俗铃声的正确标题
https://stackoverflow.com/questions/5412691
复制相似问题