私のアプリケーションでは、ユーザーがアプリケーションサウンドとして着信音を選択する必要があります。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