ユーザーが通知に必要なサウンドを選択できるようにしましたが、それを機能させることはできません。常にデフォルトのサウンドが再生されます。好みでサウンドを選択する
<RingtonePreference
android:defaultValue="content://settings/system/notification_sound"
android:key="alarmsound"
android:ringtoneType="notification"
android:showDefault="true"
android:summary="Choose Your Alarm Sound"
android:title="Alarm Sound" />
</PreferenceCategory>
次に、通知アクティビティでプルアップされます
SharedPreferences getPrefs = PreferenceManager.getDefaultSharedPreferences(getBaseContext());
String alarms = getPrefs.getString("alarmsound", "");
これはコンテンツ Uri content://media/external/audio/media/10 を返します
でファイルパスに変換しようとしました
String filePath = null;
Uri _uri = Uri.parse(alarms);
Cursor cursor = this.getContentResolver().query(_uri, new String [] { android.provider.MediaStore.Audio.Media.DATA }, null, null, null);
cursor.moveToFirst();
filePath = cursor.getString(0);
cursor.close();
Log.e(TAG5, filePath);
これは戻ります /storage/sdcard0/Notfications/hangout_ringtone.m4a
これを に入れてみました.setSound(filePath);
が、うまくいきません。が必要でUri
あり、これが完全なパスではないことを知っています。何か案は?