Il ignore complètement:
<uses-permission Android:name="Android.permission.SYSTEM_ALERT_WINDOW"/>
Donc j'ai eu une exception:
Causée par: Android.view.WindowManager $ BadTokenException: impossible d'ajouter une fenêtre Android.view.ViewRootImpl$W@86fb55b - autorisation refusée pour ce type de fenêtre
Ce n'est même pas répertorié:
Comment dois-je le réparer? Merci.
MODIFIER:
Il est répertorié dans Configurer les applications/Avancé/Dessiner sur une autre application. Donc, je l'allume et maintenant ça fonctionne bien, mais pourquoi n'y a-t-il pas de dialogue pour demander la permission lorsque je lance mon application? Toutes les permissions ont été désactivées et je dois aller dans les paramètres et l’allumer manuellement?
Merci à blog de CommonsWare , j'ai un indice.
En supposant que votre code soit dans Activity
ou Fragment
, vérifiez l’autorisation de superposition et faites une demande si nécessaire:
public static int OVERLAY_PERMISSION_REQ_CODE = 1234;
public void someMethod() {
if (!Settings.canDrawOverlays(this)) {
Intent intent = new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION,
Uri.parse("package:" + getPackageName()));
startActivityForResult(intent, OVERLAY_PERMISSION_REQ_CODE);
}
}
Ensuite, vérifiez à nouveau l’autorisation pour une meilleure UX:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == OVERLAY_PERMISSION_REQ_CODE) {
if (!Settings.canDrawOverlays(this)) {
// SYSTEM_ALERT_WINDOW permission not granted...
}
}
}