2011-06-19 19 views
9

Yapmaya çalıştığım şey, seçilen zil sesini kullanıcıdan almak, alarm çaldığında o zil sesini çalmak için bir AlarmManager alarmı kurmak. ama zil sesini veritabanına kaydetmem gerekiyor, böylece telefon yeniden başlatıldıktan sonra tüm alarmları sıfırlayabiliyorum. Android: Save android.net.Uri object to Database

Soruma yanıt gelmek için veritabanını URI kaydetmek için en iyi yolu nedir?

1) DB zil başlığını kaydetmek ve sonra almak ve varsayılan zil sesi yoluna ekler:

Ben şunları çalıştı. ama sorun şu ki, zil sesi farklı bir konumdan yüklenebilir mi? 2) uri şemasını, şema spefici parçasını ve parçayı saklayın ve Uri'yi oluşturmak için Uri.fromParts'ı arayın. 3) Uri'den bir inputStream, byte [] dizisi oluşturun ve blob olarak kaydedin ve daha sonra tekrar okuyun ve sonucu Uri

bu çalışmaların hiçbirine dökmeyin.

Yardımınız çok takdir edilmektedir.

cevap

14

URI'yi veritabanında bir dize olarak saklayın ve daha sonra yükleyin. Eğer veritabanından dize aldığınızda

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

böyle URI yeniden: yardımcı

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

Umut. İyi şanslar!

+0

Cevabınız için teşekkür ederiz. Uri.decode bir Uri değil bir String döndürür. Uri.parse (ler) kullanmıştım ve bir Uri döndürdü ancak orijinal olanla aynı değil (birçok eksik bilgi ve alan). MediaPlayer düzgün çalmıyor ve hazırlığı bozuyor. – Sammy

+1

uri.toString() öğesini uri biçiminde –

+1

almayı deneyin. – Sammy