如何将选定的铃声存储在 android studio 中?

How to store selected Ringtone in android studio?

public void onRingtone(View view) {
        final Uri currentTone= RingtoneManager.getActualDefaultRingtoneUri(Setting.this, RingtoneManager.TYPE_ALARM);
        Intent intent = new Intent(RingtoneManager.ACTION_RINGTONE_PICKER);
        intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TYPE, RingtoneManager.TYPE_RINGTONE);
        intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TITLE, "Select Ringtone");
        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, 999);
    }

我有这个 onClick 方法来 select 来自它自己的设备的可用铃声。 当调用 startActivityForResult() 方法时,它会重定向到自定义弹出对话框,用户可以从中 select 铃声,同时启动该铃声。 没关系。 但我想保存该铃声以便在另一个 activity 上播放。 所以我该怎么做? 我可以将它存储在数据库 (SQLite)、SharedPreference 或任何其他方式中吗?

编辑: 我不知道为什么我的问题会被关闭,即使我提供了所有 information.But 仍然提供更多信息,以便更好地理解我的问题。

Xml 文件:

<RelativeLayout
                android:id="@+id/Ringtone"
                android:layout_width="match_parent"
                android:layout_height="60dp"
                android:layout_below="@id/sp2"
                android:layout_marginTop="1dp"
                android:background="@drawable/pressed"
                android:clickable="true"
                android:focusable="true"
                android:onClick="onRingtone"
                android:gravity="center"
                android:paddingTop="15dp"
                android:paddingBottom="15dp">

上述方法在用户select设置铃声时调用。我得到一个答案告诉我使用 SharedPreference 来存储 uri。 但是uri在方法的第一行被声明为final。甚至它不存储 selected 铃声。在 startActivityForResult() 方法上采用 selected 铃声。所以我认为需要使用此方法 return 或在 intent 对象上完成工作。

如果我在此 java 文件中创建 SharedPreference 对象,我如何才能访问其他活动?

这是检索 Uri 对应于 onActivityResult() 中选取的音调的代码。

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (resultCode == RESULT_OK && requestCode == 999) {
        Uri ringtoneUri = data.getParcelableExtra(RingtoneManager.EXTRA_RINGTONE_PICKED_URI);
    }
}

然后您可以将其作为成员存储在当前 activity 中,并通过意图将其传递给另一个 activity