如何从系统声音中获取铃声

Posted

技术标签:

【中文标题】如何从系统声音中获取铃声【英文标题】:How to get Ringtone from system sounds 【发布时间】:2016-01-07 18:02:58 【问题描述】:

我正在使用AlarmManager 在我的 android 应用程序中显示警报,我想显示来自系统可用声音的声音作为警报,但我唯一可用的是在已设置的声音(如铃声、警报)之间进行选择,通知:

Uri alert = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_ALARM); // OR TYPE_RINGTONE OR TYPE_NOTIFICATION
Ringtone r = RingtoneManager.getRingtone(mContext, alert);

但我想获取所有系统可用的音调并在它们之间选择一种。

【问题讨论】:

你可以使用铃声选择器这里是一个例子:***.com/questions/12393016/… @Ronish 太好了,我从来不知道 RingtonePicker,它完全解决了我的问题,你可以为它添加一个完整的答案 【参考方案1】:

这对我有用:

Uri ringtone= RingtoneManager.getActualDefaultRingtoneUri(YourActivity.this, RingtoneManager.TYPE_ALARM);

正如this answer 所说,您必须执行以下操作:

Intent intent=new Intent(RingtoneManager.ACTION_RINGTONE_PICKER);
intent.putExtra(RingtoneManager.EXTRA_RINGTONE_EXISTING_URI, ringtone);
intent.putExtra(RingtoneManager.EXTRA_RINGTONE_DEFAULT_URI, ringtone);
startActivityForResult(intent , 1);

最后你会得到选择的音调“uri”,你可以将它存储在ringtone中,如下图onActivityResult()

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) 
    if (resultCode == RESULT_OK) 
        switch (requestCode) 
        case 1:
            ringtone = data.getParcelableExtra(RingtoneManager.EXTRA_RINGTONE_PICKED_URI);
            break;    
        default:
            break;
        
    

【讨论】:

您必须始终将功劳归功于之前解决过类似问题的人 :) 这就是我将链接包含在您的答案中的原因

以上是关于如何从系统声音中获取铃声的主要内容,如果未能解决你的问题,请参考以下文章

iPhone:如何播放忽略音量和铃声开关设置的声音?

三星手机,安卓系统,怎么关闭照相机声音?

微信怎么设置消息提示声音 如何修改来消息声音

如何在 UILocalNotification 中设置用户铃声的声音?

安卓智能手机,蓝牙耳机怎么设置铃声?耳机声音小怎么解决?

如何以编程方式播放默认电话铃声?