Questa domanda può essere duplicata di this question ma vedo alcune differenze nel codice, quindi ho inserito una nuova domanda.Perché RingtoneManager.setActualDefaultRingtoneUri non ha potuto funzionare? [Android API-8]
Il problema è che non riesco a impostare la suoneria selezionata in RingtonePicker. Io uso Support Library e AndroidAnnotations, forse può causare tali problemi (anche se ne dubito).
Ho un frammento con un pulsante. Quando si fa clic sul pulsante viene attivato un RingtonePicker. L'utente seleziona suoneria e l'applicazione lo salva in SharedPreference. La prossima volta che l'utente apre RingtonePicker, la suoneria selezionata in precedenza deve essere controllata, e io non posso farlo.
Ecco il mio Frammento
@EFragment(R.layout.pref_page)
public class PrefPage extends Fragment {
@Pref
MyPrefs_ myPrefs;
@Click(R.id.ringtone_button)
public void onClick() {
Intent intent = new Intent(RingtoneManager.ACTION_RINGTONE_PICKER);
intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TYPE,
RingtoneManager.TYPE_NOTIFICATION);
String uri = myPrefs.beepUri().get();
if (uri != "") {
Log.i("Log", "uri is " + uri);
RingtoneManager.setActualDefaultRingtoneUri(
getActivity(),
RingtoneManager.TYPE_NOTIFICATION,
Uri.parse(uri));
}
startActivityForResult(intent, 1);
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == -1) {
Uri uri = data.getParcelableExtra(RingtoneManager.EXTRA_RINGTONE_PICKED_URI);
if (uri != null) {
String uriString = uri.toString();
Log.i("Log", "uriString is " + uriString);
myPrefs.edit().beepUri().put(uriString).apply();
}
}
}
}
In due parole domanda è - perché RingtoneManager.setActualDefaultRingtoneUri non funziona qui?
AGGIORNAMENTO:
ho il permesso WRITE_SETTINGS nel mio manifesto.
<uses-permission android:name="android.permission.WRITE_SETTINGS" ></uses-permission>
Questa domanda è un po 'vecchia ora ma, se non hai mai risolto il problema, ho avuto un po' di esperienza con l'impostazione di suonerie ora. Se vuoi pubblicare l'errore che avevi, o se puoi dare una descrizione del perché non funziona, sarei felice di aiutarti. Altrimenti, mi piacerebbe vedere una risposta a questa domanda. –
@Paradopolis No, non ho avuto errori. Se nessuno sa perché questo metodo non potrebbe funzionare, mi aspetto un codice funzionante. –
@VitaliiKorsakov: Forse richiede ' '. Vedi [qui] (http://developer.android.com/reference/android/Manifest.permission.html#MODIFY_AUDIO_SETTINGS) per maggiori informazioni. Stai testando i tuoi codici su un dispositivo rooted, non rooted o emulatore? –
ChuongPham