70 votes

Comment faire apparaître la liste des sons de notification disponibles sur Android

Je crée des notifications dans mon application Android et souhaite disposer d'une option dans mes préférences pour définir le son utilisé pour la notification. Je sais que dans l'application Paramètres, vous pouvez choisir un son de notification par défaut dans une liste. D'où vient cette liste et est-il possible pour moi d'afficher la même liste dans mon application?

111voto

mbaird Points 31293

Il suffit de copier/coller du code à partir d'une de mes applications, qu'est-ce que vous cherchez.

C'est dans un gestionnaire onClick d'un bouton "set sonnerie" ou quelque chose de similaire:

Intent intent = new Intent(RingtoneManager.ACTION_RINGTONE_PICKER);
intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TYPE, RingtoneManager.TYPE_NOTIFICATION);
intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TITLE, "Select Tone");
intent.putExtra(RingtoneManager.EXTRA_RINGTONE_EXISTING_URI, (Uri) null);
this.startActivityForResult(intent, 5);

Et ce code capte le choix fait par l'utilisateur:

 @Override
 protected void onActivityResult(final int requestCode, final int resultCode, final Intent intent)
 {
     if (resultCode == Activity.RESULT_OK && requestCode == 5)
     {
          Uri uri = intent.getParcelableExtra(RingtoneManager.EXTRA_RINGTONE_PICKED_URI);

          if (uri != null)
          {
              this.chosenRingtone = uri.toString();
          }
          else
          {
              this.chosenRingtone = null;
          }
      }            
  }

Aussi, je conseille à mes utilisateurs d'installer les "Rings Extended" application à partir de l'Android Market. Alors à chaque fois que cette boîte de dialogue est ouverte sur leur appareil, comme à partir de mon application ou du téléphone réglages du menu, l'utilisateur aura le choix supplémentaire de choisir un des fichiers mp3 stockés sur leur appareil, et pas seulement de la construction dans les sonneries.

50voto

JD. Points 1448

Ou simplement coller ceci dans vos préférences XML:

   <RingtonePreference android:showDefault="true"
     android:key="Audio" android:title="Alarm Noise"
     android:ringtoneType="notification">
  </RingtonePreference>
 

Contenu complet de mon exemple XML uniquement pour le contexte:

 <?xml version="1.0" encoding="UTF-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<EditTextPreference android:title="Some value"
                    android:key="someval"
                    android:summary="Please provide some value"
></EditTextPreference>
<EditTextPreference android:title="Some other value"
                    android:key="someval2"
                    android:summary="Please provide some other value"
></EditTextPreference>
 <RingtonePreference android:showDefault="true"
     android:key="Audio" android:title="Alarm Noise"
     android:ringtoneType="notification">
  </RingtonePreference>

</PreferenceScreen>
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X