trouvé un travail autour, dans le réglage de la sonnerie par défaut.
Pour les personnes qui utilisent à la fois un RingtonePreference
et PreferenceManager.setDefaultValues()
, android:defaultValue
sur une RingtonePreference
prend dans une chaîne à l'URI d'une sonnerie. En fournissant une chaîne vide, vous préférez par défaut "silence", alors que d'autres chaînes conduiront probablement à aucun URI valide.
est de fournir une chaîne bogus, comme android:defaultValue="defaultRingtone"
Le travail autour, puis,:
<RingtonePreference android:key="alarm"
android:title="Alarm" android:name="Alarm"
android:summary="Select an alarm"
android:ringtoneType="alarm" android:showDefault="true"
android:defaultValue="defaultRingtone" />
Lorsque vous appelez PreferenceManager.setDefaultValues()
, prenez la préférence, et vérifier si la chaîne bogus est stockée:
// Set the stored preferences to default values defined in options.xml
PreferenceManager.setDefaultValues(this, R.layout.options, false);
// Check the stored string value, under the RingtonPreference tag
final SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(this);
final String savedUri = savedState.getString("alarm", "");
// By default, set the alarm's URI to null
Uri alarmUri = null;
// Check if a String was actually provided
if(savedUri.length() > 0) {
// If the stored string is the bogus string...
if(savedUri.equals("defaultRingtone")) {
// Set the alarm to this system's default alarm.
alarmUri = Settings.System.DEFAULT_ALARM_ALERT_URI;
// Save this alarm's string, so that we don't have to go through this again
final SharedPreferences.Editor saveEditor = saveState.edit();
saveEditor.putString("alarm", alarmUri.toString());
saveEditor.commit();
}
// Otherwise, retrieve the URI as normal.
else {
alarmUri = Uri.parse(savedUri);
}
}
Essayé les éléments suivants 2 avec pas de chance: android: defaultValue = "Sonnerie par défaut" android: defaultValue = "0" – Japtar
Avoir plus de chance avec ceci: defaultValue = "". Cela définit la valeur par défaut "silencieux", cependant. Il semble que RingtonePreference attend une valeur de chaîne, où se trouve une sonnerie. Pour obtenir la valeur par défaut, alors, je devrais obtenir la chaîne pour la sonnerie par défaut dans les paramètres. – Japtar