2017-03-27 2 views
0

J'ai essayé de faire jouer le son de notification par défaut du système à l'aide de RingtoneManager. Le code fonctionne bien jusqu'à l'API 22, mais s'arrête juste de travailler au-delà.Android RingtoneManager ne fonctionnera pas dans les API 23 et supérieures.

Voilà comment je fais,

Uri notificationTone = RingtoneManager.getActualDefaultRingtoneUri(context, RingtoneManager.TYPE_NOTIFICATION); 
        Ringtone r = RingtoneManager.getRingtone(context, notificationTone); 
        r.play(); 

Qu'est-ce que je manque? Toute aide serait appréciée.

Répondre

0

il est question de la permission> 22, vous devez demander la permission à l'exécution,

you can checked here

+0

Je comprends que les API au-delà de 22 nécessitent des autorisations d'exécution pour certaines fonctionnalités, mais dans ce cas, il ne semble pas comme un problème lié à la permission. Quelle permission le corrigerait? –

+0

Renvoie une sonnerie d'appel valide. Aucune garantie sur laquelle il retourne. S'il ne peut pas en trouver un, renvoie null. S'il ne peut en trouver qu'un sur le stockage externe et que l'appelant n'a pas l'autorisation READ_EXTERNAL_STORAGE, renvoie null. –