2011-06-19 13 views
9

Co próbuję zrobić, to uzyskać wybrany dzwonek od użytkownika, ustawić alarm AlarmManager, aby odtworzyć ten dzwonek, gdy alarm wyłączy się. ale muszę zapisać dzwonek w bazie danych, aby móc zresetować wszystkie alarmy po ponownym uruchomieniu telefonu.Android: Zapisz obiekt Android.net.Uri do bazy danych

moje pytanie jest, jaki jest najlepszy sposób, aby zapisać dzwonek Uri do bazy danych, aby odzyskać później?

Próbowałem następujących:

1) zapisać tytuł dzwonka w DB, a następnie pobrać go i dołączyć go do ścieżki domyślny dzwonek. ale problem polega na tym, że dzwonek może być ładowany z innej lokalizacji 2) Przechowywanie schematu uri, spefici schematu i fragmentu, a następnie wywołanie Uri.fromParts w celu utworzenia Uri. 3) Utwórz tablicę inputStream, byte [] z Uri i zapisz ją jako blob, a następnie odczytaj ją i odrzuć wynik do Uri

żadnej z tych prac.

Twoja pomoc jest bardzo cenna.

Odpowiedz

14

Zapisz identyfikator URI jako ciąg w bazie danych, a następnie załaduj go później.

// This will get the uri in a string format 
String s = mUri.toString(); 

Podczas pobierania ciąg z bazy danych, odbudować URI tak:

// This will decode the string into a URI 
Uri mUri = Uri.parse(s); 

nadzieję, że pomoże. Powodzenia!

+0

Dzięki za odpowiedź. Uri.decode zwraca String, a nie Uri. Użyłem uri.parse (s) i zwróciłem Uri, ale nie jest ono takie samo jak oryginalne (mnóstwo brakujących informacji i pól). więc MediaPlayer nie odtwarza go poprawnie i przerywa przygotowywanie. – Sammy

+1

spróbuj użyć uri.toString(), aby uzyskać uri w formacie ciągu znaków –

+1

Dzięki toString pracował. – Sammy

Powiązane problemy