J'ai rencontré un problème lorsque je voulais implémenter la détection de changement de volume. Comme la détection de changement doit être détectée en arrière-plan via Service, je ne peux pas intercepter les touches de volume.Comment enregistrer ContentObserver pour un changement de volume de support?
J'ai essayé ContentObserver d'écouter les changements de paramètres de volume, mais cela n'a pas fonctionné. Mais j'ai creuser un peu plus, et a constaté que mon ContentObserver détecte le changement de volume quand je l'enregistrer comme ceci:
this.getApplicationContext().getContentResolver().registerContentObserver(
android.provider.Settings.System.CONTENT_URI, true,
mSettingsContentObserver);
J'ai essayé de changer le premier paramètre - l'URI de mettre à l'écoute, si Je comprends bien. Mais je n'ai rien accompli. Alors, comment cela peut-il être fait? Je ne veux pas mettre à jour mon interface utilisateur (je mets Seekbar à certains positin) à chaque changement de paramètres. Alors, comment enregistrer l'observateur de contenu pour écouter le changement de volume de support?
Voici le code de ContentObserver:
public class SettingsContentObserver extends ContentObserver {
public SettingsContentObserver(Handler handler) {
super(handler);
}
@Override
public boolean deliverSelfNotifications() {
return super.deliverSelfNotifications();
}
@Override
public void onChange(boolean selfChange) {
super.onChange(selfChange);
myMethod();
}
}
Merci. mais ce n'est pas exactement ce que je veux. Bien sûr, cela empêchera la mise à jour de mon interface utilisateur, mais elle est quand même appelée quand n'importe quel paramètre a changé. La question est de savoir comment enregistrer ContentObserver pour certains paramètres spécifiques. –
Cela ne peut pas être fait car il n'y a pas obserevr disponible pour cela. Ce que vous faites actuellement est, en observant tous les descendants dans la hiérarchie du Système. Paramètres. Lire http://developer.android.com/reference/android/content/ContentResolver.html#registerContentObserver(android.net.Uri, booléen, android.database.ContentObserver) – anon
Comment puis-je utiliser le contenu observateur pour détecter en maintenant le bouton de volume ? –