Créer un aléatoire de sonnerie sur Android

Les utilisateurs d’Android sont toujours à la recherche d’applications capables de modifier le comportement de leurs appareils de manière nouvelle et innovante. La plate-forme Android donne à ses développeurs une grande liberté pour créer de telles applications. Dans ce didacticiel, vous apprendrez à créer une application qui randomise la sonnerie d’un téléphone Android chaque fois qu’il reçoit un appel.

Conditions préalables

Si vous souhaitez suivre, assurez-vous que la dernière version d’Android Studio est installée. Vous pouvez l’obtenir auprès du Site Web des développeurs Android.

Comme il s’agit d’un tutoriel intermédiaire, je ne couvrirai pas les bases de manière trop détaillée. Je suppose que vous avez déjà créé une ou plusieurs applications Android et que vous connaissez les bases du SDK Android.

1. Créer un nouveau projet

Démarrez Android Studio et créez un nouveau projet. Définissez le nom de l’application sur Sonnerie. Assurez-vous de choisir un nom de package unique.

Cette application peut fonctionner sur tous les téléphones dotés d’un niveau d’API 8 ou supérieur. SDK minimum à Android 2.2.

Ensuite, choisissez Ajouter aucune activité et cliquez terminer.

2. Modifier le manifeste

Notre application aura besoin des autorisations suivantes:

  • android.permission.READ_PHONE_STATE pour détecter les appels entrants
  • android.permission.WRITE_SETTINGS pour modifier le paramètre de sonnerie par défaut
  • android.permission.READ_EXTERNAL_STORAGE pour récupérer la liste des sonneries disponibles

Ajoutez ce qui suit à AndroidManifest.xml:

Cette application en a un Activity, pour permettre à l’utilisateur d’activer / désactiver le comportement de changement de sonnerie.

Il a également un BroadcastReceiver pour détecter les changements d’état des appels. Comme indiqué ci-dessous, l’action d’intention qu’il écoute est android.intent.action.PHONE_STATE.

3. Modifier strings.xml

le strings.xml Le fichier contient les chaînes utilisées par l’application. Mettre à jour values ​​/ strings.xml comme indiqué ci-dessous:

4. Créer une disposition d’activité

le Activity a besoin des vues suivantes:

  • une ToggleButton pour activer / désactiver la sonnerie aléatoire
  • une ListView pour afficher toutes les sonneries disponibles
  • une TextView qui agit comme un label

Créez un fichier nommé layout / activity_main.xml et remplacez son contenu par ce qui suit. Comme vous pouvez le voir, la mise en page est assez simple et directe.

5. Créer RingtoneHelper Classe d’assistance

Afin d’éviter de traiter avec le RingtoneManager directement dans le Activity ou la BroadcastReceiver, nous allons créer une classe d’assistance nommée RingtoneHelper.

le RingtoneHelper classe aura deux méthodes statiques qui utilisent le RingtoneManager classe.

En relation :  TCL annonce des tablettes Android abordables de 8 et 10 pouces

fetchAvailableRingtones

le fetchAvailableRingtones La méthode récupère la liste des sonneries disponibles, renvoyant un List de Ringtone objets.

Dans fetchAvailableRingtones méthode, nous commençons par créer une instance de la RingtoneManager classe. le RingtoneManager objet peut lister tous les sons disponibles sur l’appareil. Cela inclut les sons pour les alarmes et autres notifications.

Nous utilisons le setType méthode pour définir son type sur TYPE_RINGTONE car nous ne sommes intéressés que par les sonneries.

Nous invoquons ensuite le getCount méthode pour savoir combien de sonneries sont disponibles et appeler le getRingtone méthode dans un for boucle, en ajoutant chaque sonnerie à ringtones.

changeRingtone

le changeRingtone method est chargé de changer la sonnerie de l’appareil, la caractéristique principale de notre application.

Nous nous enregistrons d’abord SharedPreferences si l’utilisateur a activé la sonnerie aléatoire. Nous utilisons ensuite le Random classe pour choisir un nombre aléatoire inférieur au nombre de sonneries disponibles.

le getRingtoneUri est appelée pour récupérer l’URI de la sonnerie correspondante et la transmettre au setActualDefaultRingtoneUri méthode pour changer la sonnerie.

6. Créer un récepteur de diffusion

Créez une nouvelle classe nommée RingReceiver qui hérite de BroadcastReceiver. La nouvelle classe n’aura qu’une seule méthode nommée onReceive. Dans cette méthode, tout ce que nous faisons est d’appeler la classe d’assistance changeRingtone méthode si les critères suivants sont remplis:

  • l’action du reçu Intent est égal à TelephonyManager.ACTION_PHONE_STATE_CHANGED
  • la valeur de la clé de recherche EXTRA_STATE est égal à TelephonyManager.EXTRA_STATE_RINGING

C’est ce que le RingReceiver la classe devrait ressembler à:

sept. Créer une activité

Créez une nouvelle classe nommée MainActivity qui hérite de Activity. Nous remplaçons le onCreate méthode et effectuez les actions suivantes:

  • invoquer setContentView pour utiliser la mise en page définie dans activity_main.xml
  • appeler la classe d’aide fetchAvailableRingtones méthode pour remplir un List de sonneries
  • initialiser le ListView
  • initialiser le ToggleButton

le MainActivity la classe devrait maintenant ressembler à ceci:

initializeToggle

dans le initializeToggle méthode nous définissons l’état du bouton bascule en fonction d’un boolean valeur nommée actif dans SharedPreferences. Cette valeur est définie sur false par défaut.

En relation :  Qu'est-ce que Google Assistant et comment l'utiliser

Nous ajoutons également un OnCheckedChangeListener sur le bouton bascule pour mettre à jour la valeur dans SharedPreferences. le putBoolean et commit méthodes de la Editor sont utilisés pour accomplir cela.

initializeList

le initializeList méthode crée un Adapter basé sur List de sonneries. Utilisation android.R.layout.simple_list_item_1 comme la mise en page des éléments du ListView. Ce n’est rien d’autre qu’un TextView. Il devrait afficher le titre de la sonnerie, en utilisant le Ringtone classe getTitle méthode. Cela devrait être fait à l’intérieur du getView méthode de la Adapter, après l’avoir annulée.

Une fois la Adapter est prêt, attribuez-le au ListView en utilisant le ListViewde setAdapter méthode.

8. Compiler et exécuter

Notre application est maintenant prête à être déployée sur un téléphone Android. Vous devriez pouvoir voir toutes les sonneries disponibles sur votre téléphone lorsque vous démarrez l’application. Cliquez sur le bouton bascule pour activer le randomiseur.

Voici à quoi pourrait ressembler le résultat final

Appelez-vous plusieurs fois depuis un autre téléphone. La première fois que vous recevez un appel, votre sonnerie d’origine sera jouée. À partir du prochain appel, vous entendrez une sonnerie aléatoire à chaque fois.

Notez que cette application modifie la sonnerie par défaut de votre téléphone. Si vous avez attribué une sonnerie spécifique à un contact ou à un groupe de contacts, cette sonnerie sera toujours utilisée.

Conclusion

Vous savez maintenant utiliser les fonctionnalités disponibles dans le RingtoneManager classe. Vous avez également appris à détecter les appels entrants. N’hésitez pas à vous appuyer sur cette application pour randomiser d’autres notifications de la même manière. Visiter le Site Web des développeurs Android pour en savoir plus sur le RingtoneManager classe.

Moyens Staff
Moyens I/O Staff vous a motivé, donner des conseils sur la technologie, le développement personnel, le style de vie et des stratégies qui vous aider.