2012-12-22 2 views
2

Dans mon application, j'ai besoin que l'utilisateur sélectionne une sonnerie comme son d'application. J'utilise RingtoneManager.ACTION_RINGTONE_PICKER pour obtenir la sonnerie sélectionnée. Il renvoie Uri de la sonnerie, et je peux transformer cela en une sonnerie et tout fonctionne très bien. Mais voici la partie difficile:Comment une sonnerie peut-elle être enregistrée en tant que chaîne?

Toutes mes données d'application sont conservées dans un fichier XML, j'ai donc besoin d'un moyen de sauvegarder la sonnerie comme String. Je pensais juste obtenir le chemin de la sonnerie en utilisant Uri.getPath() et en enregistrant le chemin dans mon application. Mais je ne peux pas trouver un moyen de convertir le chemin en une sonnerie lorsque je dois l'utiliser. Voici le code que j'essayé de convertir un Uri à cordes et à l'arrière:

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

Il ne fonctionne pas. sorties LogCat:

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

et sonnerie obtient null

Répondre

3

Uri.path renvoie uniquement la path partie de l'URL. Par exemple, si l'URI est "http://hello.com/world/1", alors path est seulement la partie "/ world/1" de l'URI. Vous devriez plutôt stocker le résultat de Uri.toString() dans votre fichier XML.

+1

Fonctionne comme le charme. Merci! –

Questions connexes