2016-10-31 7 views
3

Wie kann ich die Bildschirmüberlagerungsberechtigung während der Installation der Anwendung standardmäßig aktivieren?So aktivieren Sie standardmäßig die Bildschirmüberlagerungsberechtigung

Jetzt habe ich ein Problem, wenn Capture-Bild Frage Laufzeit Berechtigung einige Gerät nicht erlauben die Erlaubnis es Bildschirm Overlay-Einstellungen Dialog öffnen. Aus Anwendersicht wissen sie nicht, warum der Dialog angezeigt wird und was sie tun.

Beim Öffnen des Overlay-Einstellungsbildschirms aktivieren einige Anwendungen automatisch die Bildschirmüberlagerungsberechtigung.

Darunter verwende ich den Code.

Dieser Code öffnet direkt den Overlay-Einstellungsbildschirm. ihre Liste zeigt alle Anwendungen.

Meine Anforderung besteht darin, eine berechtigungsspezifische Anwendung anzuzeigen oder eine Overlay-Berechtigung ohne Benutzerinteraktion zu aktivieren.

needfull tun ...

Antwort

0

unten Code hinzufügen in Ihrem Manifest

<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" /> 
+0

ich die Erlaubnis, in Manifest-Datei auch hinzufügen. –

0

Sie müssen den Bildschirm-Overlay Erlaubnis nicht aktivieren statt, bevor um Erlaubnis zu fragen, Zeigen Sie Ihre Dialogfeld Erläuterung des Benutzers warum brauchen Sie die Erlaubnis und bitten sie, die Erlaubnis zu akzeptieren. Wenn der Benutzer Nein auswählt, zeigen Sie das Dialogfeld nicht an. sonst zeige ihm den Erlaubnisdialog. Dies hilft Ihnen, die Bildschirmüberlagerungserlaubnis zu vermeiden.

0

Sie Sie müssen Ihre Aktivität verlassen, um die Erlaubnis zu erhalten, Ihren Bildschirm über andere Aktivitäten zu zeichnen. Das ist etwas, was du nicht vermeiden kannst.

Um dies zu tun, müssen Sie Einstellungen über ACTION_MANAGE_OVERLAY_PERMISSION Absicht besuchen. Da Sie gerne eine benutzerfreundliche App haben möchten, müssen Sie im Moment eine solche Erlaubnis anfordern, indem Sie einen Dialog mit der Erklärung, warum Sie dies benötigen, und mit der Option, Ihre Anforderung zu akzeptieren und abzulehnen, absetzen. Akzeptieren Sie die Absicht und starten Sie die Aktivität.

3

Was Sie tun müssen, ist, senden Sie Ihren Paketnamen innerhalb der Absicht, wie erwähnt in the documentation.

Eingang: Optional können die Daten der Intent-URI können die Anwendung Paketnamen angeben, um direkt die Management-GUI aufrufen spezifisch für das Paketnamen. Zum Beispiel "Paket: com.my.app".

Also, tun Sie etwas wie folgt aus:

if (!Settings.canDrawOverlays(this)) { 
    Intent myIntent = new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION); 
    myIntent.setData(Uri.parse("package: " + getPackageName())); 
    startActivityForResult(myIntent, 101); 
} 
+4

Sie sollten '" package: "' ohne Leerzeichen verwenden. So: 'myIntent.setData (Uri.parse (" package: "+ getPackageName()));' – comrade

Verwandte Themen