[如何在Android Studio中存储用户选择的铃声( [关闭])

知是行的主意,行是知的功夫。这篇文章主要讲述[如何在Android Studio中存储用户选择的铃声? [关闭]相关的知识,希望能为你提供帮助。
关闭。这个问题是opinion-based。它当前不接受答案。 【[如何在Android Studio中存储用户选择的铃声( [关闭])】是否要改善此问题?更新问题,以便editing this post可以用事实和引用来回答。
关闭4分钟前。

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或任何其他方式存储?
答案要保存铃声Uri,您可以使用:
SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0); SharedPreferences.Editor editor = settings.edit(); editor.putString("currentTone", currentTone.toString()); editor.commit();

要检索铃声Uri,您需要将字符串解析为Uri:
SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0); String currentToneString= settings.getString("currentTone", null); Uri currentTone= Uri.parse(currentToneString); return currentTone;


    推荐阅读