Est - il possible de demander la permission par programme?

Est - il possible de demander la permission par programme dans android ? Je ne veux pas ajouter toute la permission à AndroidManifest.XML. Donc, y a-t-il une boîte de dialogue qui demande la permission à l'exécution?

23
demandé sur karim79 2011-09-22 19:15:31

6 réponses

Non. L'utilisateur doit être informé sur les autorisations lors de l'installation de l'application. Demander à l'utilisateur lors de l'exécution serait un risque de sécurité.

8
répondu Daniel Novak 2014-02-13 13:53:32

Les Applications déclarent statiquement les autorisations dont elles ont besoin, et le système Android invite l'utilisateur à consentir au moment où l'application est installée. Android n'a aucun mécanisme pour accorder des autorisations dynamiquement (au moment de l'exécution) car cela complique l'expérience utilisateur au détriment de la sécurité.

14
répondu Nate 2015-06-26 12:41:24

, jusqu'à maintenant, mais oui.

Selon le nouveau modèle d'autorisation de Google introduit dans Android M :

Si une application s'exécutant sur M Preview prend en charge le nouveau modèle d'autorisations, l'utilisateur n'a pas à accorder d'autorisations lors de l'installation ou de la mise à niveau de L'application. Au lieu de cela, l'application demande des autorisations comme elle en a besoin, et le système affiche une boîte de dialogue à l'utilisateur demandant l'autorisation.

Voici un résumé des éléments clés de ce nouveau modèle:

  • Déclaration Des Autorisations: L'application déclare toutes les autorisations nécessaires dans le manifeste, comme dans plates-formes Android antérieures.

  • Groupes d'autorisations: les Autorisations sont divisés en groupes d'autorisations, selon leurs fonctionnalités. Par exemple, le groupe d'autorisations CONTACTS contient des autorisations pour lire et écrire les contacts et les informations de profil de l'utilisateur.

  • autorisations limitées accordées au moment de L'installation: lorsque l'utilisateur installe ou met à jour l'application, le système accorde à l'application toutes les autorisations répertoriées dans le manifeste qui relèvent de PROTECTION_NORMAL. Par exemple, les autorisations de réveil et d'internet tombent sous PROTECTION_NORMAL, de sorte qu'elles sont automatiquement accordées au moment de l'installation. Pour plus d'informations sur la gestion des autorisations normales, voir Autorisations normales. Le système peut également accorder des autorisations de signature à l'application, comme décrit dans composants système et autorisations de signature. L'utilisateur n'est pas invité à accorder des autorisations à installer temps.
  • L'utilisateur accorde des autorisations au moment de l'exécution: lorsque l'application demande une autorisation, le système affiche une boîte de dialogue à l'utilisateur, puis appelle la fonction de rappel de l'application pour l'informer si l'Utilisateur a accordé l'autorisation. Ce modèle d'autorisation modifie le comportement de votre application pour les fonctionnalités nécessitant des autorisations. Voici un résumé des pratiques de développement que vous devez suivre pour vous adapter à ce modèle:

  • Toujours vérifier les autorisations: lorsque l'application doit effectuer tout action qui nécessite une autorisation, il doit d'abord vérifier si elle a déjà cette autorisation. Si elle ne le fait pas, elle demande à obtenir cette autorisation. Vous n'avez pas besoin de vérifier les autorisations qui tombent sous PROTECTION_NORMAL.

  • Gérer le manque D'autorisations gracieusement: si l'application ne bénéficie pas d'une autorisation appropriée, elle doit gérer l'échec proprement. Par exemple, si l'autorisation est juste nécessaire pour une fonction supplémentaire, l'application peut désactiver cette fonctionnalité. Si l'autorisation est essentielle pour que l'application fonctionne, l'application peut désactiver toutes ses fonctionnalités et informer l'utilisateur qu'il doit accorder cette autorisation.

  • Les autorisations sont révocables: les utilisateurs peuvent révoquer les autorisations d'une application à tout moment. Si un utilisateur désactive les autorisations d'une application, celle-ci n'est pas notifiée. Encore une fois, votre application doit vérifier qu'elle a besoin d'autorisations avant d'effectuer des actions restreintes.

Source: https://developer.android.com/preview/features/runtime-permissions.html

8
répondu Machado 2016-02-02 19:58:31
7
répondu Eric 2017-05-23 11:53:01

Android M a introduit des autorisations D'exécution, que tout le monde attendait. De plus, les autorisations sont maintenant catégorisées en NORMAL et dangereux, où les autorisations normales sont accordées par défaut et les autorisations dangereuses sont demandées lorsqu'elles sont nécessaires. En outre, les autorisations dangereuses peuvent être révoquées par l'utilisateur à tout moment à partir du menu des paramètres de l'appareil.

2
répondu Prodigy 2015-10-12 18:59:44

Si je combine les réponses de "Piskvor" et de "Hanno Liant", votre application permet de vérifier si l'aide de l'app est disponible (essayez d'appeler avec une Intention), et si elle n'est pas là (l'invocation d'échec), invite l'utilisateur à installer.

Regardez ce qui suit, par exemple.

Comment télécharger adobe reader par programmation si n'existe pas

1
répondu Oren 2017-05-23 12:01:43