lang:android:permission
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
lang:android:permission [2022/09/26 15:10] – Ajout de "Permission via une fenêtre dédiée" root | lang:android:permission [2023/04/12 13:37] (Version actuelle) – Ajout de "Autorisation avec adb" root | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | ===Demande | + | ====Demande de permissions==== |
+ | ===Demande explicites pour permissions multiples=== | ||
<code java> | <code java> | ||
Ligne 13: | Ligne 14: | ||
String[] ask_permission = {Manifest.permission.WRITE_EXTERNAL_STORAGE, | String[] ask_permission = {Manifest.permission.WRITE_EXTERNAL_STORAGE, | ||
Manifest.permission.READ_EXTERNAL_STORAGE}; | Manifest.permission.READ_EXTERNAL_STORAGE}; | ||
- | if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) { | + | |
- | ask_permission = Arrays.copyOf(ask_permission, | + | |
- | ask_permission[ask_permission.length-1] = Manifest.permission.MANAGE_EXTERNAL_STORAGE; | + | |
- | } | + | |
requestPermissionLauncher.launch(ask_permission); | requestPermissionLauncher.launch(ask_permission); | ||
</ | </ | ||
Ligne 77: | Ligne 75: | ||
* '' | * '' | ||
+ | |||
+ | Déclarer la liste des droits nécessaires. | ||
<code xml> | <code xml> | ||
Ligne 98: | Ligne 98: | ||
</ | </ | ||
- | * Filtrer les devices USB dans '' | + | * Filtrer les devices USB autorisés |
<code xml> | <code xml> | ||
Ligne 108: | Ligne 108: | ||
</ | </ | ||
- | ===Permission via une fenêtre dédiée=== | + | ===Permission |
Exemple avec '' | Exemple avec '' | ||
Ligne 119: | Ligne 119: | ||
Cela se fait en ouvrant une fenêtre dédiée à la modification des droits. On commence par vérifier si on a les droits avant. Puis on vérifie si on a les droits à la fermeture de la fenêtre. | Cela se fait en ouvrant une fenêtre dédiée à la modification des droits. On commence par vérifier si on a les droits avant. Puis on vérifie si on a les droits à la fermeture de la fenêtre. | ||
+ | |||
+ | Ne pas appelé '' | ||
+ | |||
+ | Le composant '' | ||
+ | |||
+ | < | ||
<code java> | <code java> | ||
- | private ActivityResultLauncher< | + | private ActivityResultLauncher< |
+ | |||
+ | public void onCreate(Bundle savedInstanceState) | ||
+ | | ||
new ActivityResultContracts.StartActivityForResult(), | new ActivityResultContracts.StartActivityForResult(), | ||
result -> { | result -> { | ||
Ligne 139: | Ligne 148: | ||
} | } | ||
</ | </ | ||
+ | |||
+ | Message d' | ||
[[https:// | [[https:// | ||
+ | |||
+ | ===Autorisation avec adb=== | ||
+ | |||
+ | Pour les tests, il peut être nécessaire d' | ||
+ | |||
+ | <code bash> | ||
+ | adb shell appops set --uid com.package MANAGE_EXTERNAL_STORAGE allow | ||
+ | </ | ||
+ | |||
+ | Pour avoir la liste des permissions, | ||
+ | |||
+ | <code bash> | ||
+ | adb shell 'pm list permissions | sort' | ||
+ | </ | ||
+ | |||
+ | ====Permission des dossiers==== | ||
+ | |||
+ | * Carte SD ou ''/ | ||
+ | |||
+ | Ne doit servir que pour stocker des données. Il n'est pas possible d'y stocker des exécutables. Le dossier est monté en '' | ||
+ | |||
+ | * Dossier home de l' | ||
+ | |||
+ | Ne doit servir que pour stocker des données spécifiques à chaque application. Il n'est pas possible d'y stocker des exécutables. | ||
+ | |||
+ | Pour exécuter des binaires externes, il faut les [[lang: | ||
+ | |||
+ | [[https:// | ||
+ |
lang/android/permission.1664197857.txt.gz · Dernière modification : de root