Android:将android.net.Uri对象保存到数据库

Sam*_*mmy 9 java android uri alarmmanager

我想要做的是从用户那里获取所选的铃声,设置一个AlarmManager闹钟,以在闹钟关闭时播放该铃声.但我需要将铃声保存在数据库中,这样我可以在手机重启后重置所有闹钟.

我的问题是什么是将铃声Uri保存到数据库以便以后检索的最佳方法?

我尝试了以下几点:

1)将铃声标题保存在数据库中,然后检索它并将其附加到默认铃声路径.但问题是,铃声可能是从不同的位置加载2)存储uri方案,方案spefici部分和片段,然后调用Uri.fromParts来创建Uri.3)从Uri创建一个inputStream,byte []数组并将其保存为blob,然后将其读回并将结果转换为Uri

这些都不起作用.

非常感谢您的帮助.

Sri*_*lla 23

将URI作为字符串存储在数据库中,然后再加载它.

// This will get the uri in a string format
String s = mUri.toString();
Run Code Online (Sandbox Code Playgroud)

从数据库中检索字符串时,重建URI如下所示:

// This will decode the string into a URI
Uri mUri = Uri.parse(s);
Run Code Online (Sandbox Code Playgroud)

希望有所帮助.祝好运!