Как сохранить выбранную мелодию в студии android? - PullRequest
0 голосов
/ 20 марта 2020
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 для выбора доступной мелодии звонка с его собственного устройства. Когда вызывается метод startActivityForResult (), он перенаправляет в настраиваемое всплывающее диалоговое окно, из которого пользователь может выбрать мелодию звонка, и одновременно он запускает эту мелодию звонка. Это нормально. Но я хочу сохранить эту мелодию, чтобы воспроизвести ее на другом занятии. И что я должен делать? Могу ли я сохранить его в базе данных (SQLite), SharedPreference или любым другим способом?

Редактировать: Я не знаю, почему мой вопрос закрывают, даже если я предоставил всю информацию. Но еще больше информации, чтобы лучше понять мой вопрос.

Xml file:

<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">

Вышеуказанный метод вызывается, когда пользователь выбирает мелодию звонка. Я получил один ответ, который сказал мне использовать SharedPreference для хранения URI. Но Uri объявляется окончательным в первой строке метода. И даже он не сохраняет выбранную мелодию звонка. По методу startActivityForResult () принимает выбранный рингтон. Поэтому я думаю, что нужно выполнить работу с этим методом return или с объектом намерения.

Если я создаю объект SharedPreference в этом файле java, как я могу получить доступ к другой активности?

1 Ответ

0 голосов
/ 20 марта 2020

Вот код для извлечения 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);
    }
}

Затем его можно сохранить в текущем действии в качестве участника и передать через намерение другое занятие

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...