J'ai une question concernant la nouvelle version d'Android Marshmallow:
Est-il possible d'afficher l'écran d'autorisation pour une application spécifique via une intention ou quelque chose de similaire?
Il est possible d'afficher les paramètres de l'application avec le code suivant - existe-t-il une solution analogique pour ouvrir directement l'écran d'autorisation?
startActivity(new Intent(android.provider.Settings.ACTION_APPLICATION_DETAILS_SETTINGS,
Uri.fromParts("package", getPackageName(), null)));
J'ai déjà fait des recherches à ce sujet mais je n'ai pas pu trouver de solution appropriée - j'apprécierais chaque aide!
android
android-permissions
android-6.0-marshmallow
Frederik Schweiger
la source
la source
Réponses:
Selon la vidéo officielle des autorisations Marshmallow (à la marque 4m 43s ), vous devez ouvrir la page Paramètres de l'application à la place (à partir de là, il suffit d'un clic pour accéder à la page Autorisations).
Pour ouvrir la page des paramètres, vous feriez
la source
Ce n'est pas possible.J'ai essayé de le faire aussi. J'ai pu comprendre le nom du package et l'activité qui va démarrer. Mais à la fin, vous obtiendrez une exception de sécurité en raison d'une autorisation manquante que vous ne pouvez pas déclarer.
METTRE À JOUR:
En ce qui concerne l'autre réponse, je recommande également d'ouvrir l'écran des paramètres de l'application. Je le fais avec le code suivant:
Comme je ne veux pas l'avoir dans ma pile d'historique, je le supprime en utilisant des indicateurs d'intention.
la source
Description Ouvre la page de configuration Détails pour l'application. À partir de là, l'utilisateur doit attribuer manuellement l'autorisation souhaitée.
Settings.ACTION_APPLICATION_DETAILS_SETTINGS
Intent.FLAG_ACTIVITY_NEW_TASK
Facultatif . S'il est défini, ouvre l'écran Paramètres (Activité) en tant que nouvelle activité. Sinon, il sera ouvert dans l'activité en cours d'exécution.
Uri.fromParts("package", getPackageName(), null)
Prépare ou crée l'URI, tandis que getPackageName () - renvoie le nom de votre package d'application.
intent.setData(uri)
N'oubliez pas de régler cela . Sinon, vous obtiendrez
android.content.ActivityNotFoundException
. Parce que vous avez défini votre intentionSettings.ACTION_APPLICATION_DETAILS_SETTINGS
et Android attend un nom à rechercher.la source
Au lieu de cela, vous pouvez ouvrir les paramètres généraux d'une application particulière avec une seule ligne
la source
Il n'est pas possible d'ouvrir par programme l'écran d'autorisation. Au lieu de cela, nous pouvons ouvrir l'écran des paramètres de l'application.
Code
Exemple de sortie
la source
Si vous souhaitez écrire moins de code,
Kotlin
vous pouvez le faire:D'après la réponse de Martin Konecny
la source
Style Kotlin.
la source
Peut-être que cela vous aidera
la source
Si nous parlons de FLYME OS (Meizu) UNIQUEMENT il existe sa propre application de sécurité avec des autorisations.
Pour l'ouvrir, utilisez l'intention suivante:
De causes buildconfig est votre application buildconfig .
la source
Xamarin forme Android:
la source
il n'est pas possible d'obtenir la permission de façon pragmatique ... mais je vous suggère de ne pas mettre cette ligne de code dans try {} catch {}, ce qui fera malheureusement arrêter votre application ... et dans catch body créer une boîte de dialogue qui naviguera dans le l'utilisateur à un petit tutoriel pour activer la permission de dessiner sur d'autres applications ... puis sur le bouton oui, cliquez sur mettre ce code ...
cette intention est d' ouvrir directement la liste de tirage sur d'autres applications pour gérer les autorisations, puis à partir d'ici, il suffit d'un clic pour dessiner sur d'autres applications Autorisations ... je sais que ce n'est pas la réponse que vous recherchez ... mais Je fais ça dans mes applications ...
la source