如何使用RingtoneManager.ACTION_RINGTONE_PICKER设置铃声?

Mic*_*lsx 20 android set picker ringtone

我试着在这里找到解决方案,但是只有我自己/选定文件的解决方案,而不是我调用选择器时的代码.用户按下按钮时我使用以下代码:

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_NOTIFICATION);
ActivityCurrent.this.startActivityForResult(intent,999);
Run Code Online (Sandbox Code Playgroud)

这个节目铃声选择器,用户可以选择想要的铃声,但我想念两件事: - 它打开时不显示当前铃声 - 点击OK时不保存铃声OK


我仍然无法找到如何用已选择的当前铃声打开RINGTONE_PICKER.任何的想法?

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_NOTIFICATION);
ActivityCurrent.this.startActivityForResult(intent,999);
Run Code Online (Sandbox Code Playgroud)

Pet*_*ton 20

您必须实现onActivityResult()从用户的选择接收结果,然后保存它.

if (resultCode == RESULT_OK) {
    Uri uri = intent.getParcelableExtra(RingtoneManager.EXTRA_RINGTONE_PICKED_URI);
    if (uri != null) {
    String ringTonePath = uri.toString();
}
Run Code Online (Sandbox Code Playgroud)

这是一个例子:http://www.ceveni.com/2009/07/ringtone-picker-in-android-with-intent.html

编辑:更新

RingtoneManager.setActualDefaultRingtoneUri(
    myActivity,
    RingtoneManager.TYPE_RINGTONE,
    uri);
Run Code Online (Sandbox Code Playgroud)

你必须打电话给:)

  • 链接已损坏:( (2认同)

小智 13

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);
Run Code Online (Sandbox Code Playgroud)

"铃声"是我保存拾音的uri 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);

            // Toast.makeText(getBaseContext(),RingtoneManager.URI_COLUMN_INDEX,
            // Toast.LENGTH_SHORT).show();
            break;

        default:
            break;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

希望它能帮到你.如果确实如此,则回答.