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

时间:2016-01-07 18:02:58

标签: android alarmmanager ringtonemanager

我使用AlarmManager在我的Android应用中显示闹钟,我想将系统可用声音中的声音显示为闹钟,但我唯一可用的选择是在已设置的声音之间进行选择喜欢铃声,闹钟,通知:

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

但我希望得到所有系统可用的音调,并在它们之间选择一个。

1 个答案:

答案 0 :(得分:3)

这对我有用:

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;
        }
    }
}