如何将铃声存储为字符串?

时间:2012-12-22 08:55:58

标签: android uri ringtone

在我的应用程序中,我需要用户选择铃声作为应用程序声音。我使用RingtoneManager.ACTION_RINGTONE_PICKER来获取所选铃声。它返回铃声的Uri,我可以把它变成铃声,一切正常。但这是棘手的部分:

我的所有应用程序数据都保存在XML文件中,因此我需要一种方法将铃声保存为String。 我正在考虑使用Uri.getPath()获取铃声路径并在我的应用中保存路径。但是当我需要使用它时,我找不到将路径转换回铃声的方法。 这是我试图将Uri转换为String并返回的代码:

String ringtonePath = ringtoneUri.getPath();
ringtoneUri = Uri.parse(ringtonePath);
Ringtone ringtone = RingtoneManager.getRingtone(getActivity(), ringtoneUri);

它不起作用。 LogCat输出:

Failed to open ringtone /internal/audio/media/13

和铃声获取null

1 个答案:

答案 0 :(得分:3)

Uri.path仅返回网址的path部分。例如,如果URI是“http://hello.com/world/1”,那么path只是URI的“/ world / 1”部分。您应该将结果Uri.toString()存储在XML中。