21

我可以成功调出铃声选择器并使用以下代码获得结果 uri...

    selsound_button.setOnClickListener(new OnClickListener()
    {   
        public void onClick(View arg0)
        {
            Intent intent = new Intent(RingtoneManager.ACTION_RINGTONE_PICKER);
            intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TITLE, "Select ringtone for notifications:");
            intent.putExtra(RingtoneManager.EXTRA_RINGTONE_SHOW_SILENT, false);
            intent.putExtra(RingtoneManager.EXTRA_RINGTONE_SHOW_DEFAULT, true);
            intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TYPE,RingtoneManager.TYPE_ALARM);
            startActivityForResult( intent, 999);   
        }
    });

...但我未能弄清楚如何执行以下操作:

鉴于我已经知道当前的 uri,我希望告诉选择器它当前已被选中,以便它可以突出显示正确的单选按钮。目前,在我按下其中一个之前,根本没有选择任何单选按钮。

4

2 回答 2

26

您需要添加

   intent.putExtra(RingtoneManager.EXTRA_RINGTONE_EXISTING_URI, currenturi);

设置单选按钮

于 2012-09-18T12:25:01.113 回答
9

这是适合您的确切代码。

selsound_button.setOnClickListener(new OnClickListener() {

        public void onClick(View arg0) {
            final Uri currentTone= RingtoneManager.getActualDefaultRingtoneUri(YourActivity.this, RingtoneManager.TYPE_ALARM);
            Intent intent = new Intent(RingtoneManager.ACTION_RINGTONE_PICKER);
            intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TYPE, RingtoneManager.TYPE_ALARM);
            intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TITLE, "Select Tone");
            intent.putExtra(RingtoneManager.EXTRA_RINGTONE_EXISTING_URI, currentTone);
            intent.putExtra(RingtoneManager.EXTRA_RINGTONE_SHOW_SILENT, false);
            intent.putExtra(RingtoneManager.EXTRA_RINGTONE_SHOW_DEFAULT, true);
            startActivityForResult(intent, TONE_PICKER);
        }

    });
于 2015-10-06T09:13:50.077 回答