2016-06-15 5 views
0

私は現在の着信音を取得しています。今はただsharedpreferenceに保存したいだけです。アンドロイドはSharedPreferencesの着信音を保存して再度取得します

どうすれば実現できますか?それは音を鳴らすために働いていない

Uri currentRintoneUri = 
      RingtoneManager.getActualDefaultRingtoneUri(context.getApplicationContext(), 
                 RingtoneManager.TYPE_RINGTONE); 
Ringtone currentRingtone = RingtoneManager.getRingtone(context, currentRintoneUri); 

が、それはエディットテキストのために動作します:

ここ

コードは、私が試した

sharedpreferences = getSharedPreferences(MyPRE, Context.MODE_PRIVATE); 
String current = sharedpreferences.getString(CUR, ""); 
SharedPreferences.Editor editor = sharedpreferences.edit(); 
editor.putString(CUR, String.valueOf((currentRingtone))); 
editor.commit(); 
+0

具体的な問題を明確にしたり、詳細を追加して必要なものを正確に強調してください。 – abarisone

+0

私はちょうどsharedprefrencesにcurrentringtoneを保存してそれを取得したいと思います。 –

+0

これは、SharedPrefsにプリミティブなデータ型しか保存できないためです。 「ウリ」を文字列に変換して保存できますか?後で 'Uri'を文字列から再作成しますか? – Vucko

答えて

0

バディ、あなたのコードは正しくありました。私はちょうどあなたのコードをデモテストを書いた。 W/MediaPlayer: Couldn't open file on client side; trying server side: java.lang.SecurityException: Permission Denial: reading com.android.providers.media.MediaProvider uri content://media/external/audio/media/79645 from pid=8293, uid=11729 requires android.permission.READ_EXTERNAL_STORAGE, or grantUriPermission()

だから、正しい方法はでString.valueOf(Uri)を保存することです:

あなたは多分、私はlogcatでこの警告を得たコードセグメントと呼ばれる場合は、このコードセグメントRingtone currentRingtone = RingtoneManager.getRingtone(context, currentRintoneUri);

呼ばandroid.permission.READ_EXTERNAL_STORAGE許可が必要SharedPreferences String.valueOf(Ringtone object)を保存します。

+0

私もこの許可を持っています –

+0

その感謝の仲間 –

+0

着メロとして設定する方法を教えてください? –

0

あなたは着メロ同じプロセスを取得したい、

SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(getApplicationContext()); 

String ringtone = preferences.getString("CUR", "DEFAULT_SOUND"); 

Uri uri = Uri.parse(ringtone); 

これで、uriを使用して着信音を鳴らすことができます。

+0

私はそれを理解していないことを理解してくださいより多くを記述してください? –

+0

私は着メロを得るのにuriを使用しますが、何も得られません –

+0

rここに???????????? –

関連する問題