Adaptation Android11

Si vous devez vous adapter à Android 11, il est recommandé de télécharger studio4.2 (version canari). La différence est que l'ancien SDK n'est pas compatible. Le SDK affiché en 4.1 est Android 10.0+, et le SDK affiché en 4.2 est Android 11.

Configurez le studio, ouvrez le fichier build.gradle au niveau du module et mettez à jour compileSdkVersion et targetSdkVersion :

Android { compileSdkVersion 30

defaultConfig {
    targetSdkVersion 30
}
...

}

2. Mise à jour de la confidentialité

Ce qui suit est un résumé des modifications liées aux autorisations de confidentialité dans Android 11. Les principales modifications liées aux autorisations de confidentialité dans Android 11 sont stockées dans des partitions. Les opérations sous les propres fichiers de cache spécifiques à l'application actuelle ne nécessitent pas d'autorisations et peuvent être accessible directement.

1. Application du stockage de partition :

Les applications qui ciblent Android 11 et les applications qui ciblent Android 10 sans que requestLegacyExternalStorage soit défini sur true pour désactiver le stockage partitionné, le paramètre de compatibilité du stockage partitionné d'Android 11 n'aura aucun effet.

Android utilise un système de fichiers similaire aux systèmes de fichiers sur disque trouvés sur d'autres plates-formes. Le système propose les méthodes suivantes pour enregistrer les données d'application :

Espace de stockage spécifique à l'application : stocke les fichiers utilisés uniquement par l'application, qui peuvent être stockés dans un répertoire dédié du volume de stockage interne ou dans d'autres répertoires dédiés de l'espace de stockage externe. Utilisez un répertoire dans le stockage interne pour stocker des informations sensibles auxquelles les autres applications ne devraient pas avoir accès.

Stockage partagé : stocke les fichiers que votre application a l'intention de partager avec d'autres applications, y compris les médias, les documents et d'autres fichiers.

Préférences : stocker les données brutes privées sous forme de paires clé-valeur.

Base de données : utilisez la bibliothèque de persistance de la salle pour stocker des données structurées dans une base de données dédiée.

Si l'utilisateur est une application Android11 ​​mise à niveau, définissez l'attribut preserveLegacyExternalStorage sur true, et l'utilisateur peut toujours utiliser l'ancienne version du modèle de stockage. Si l'application est désinstallée et réinstallée, cet attribut n'est pas valide

Android R stipule que APP dispose de deux modes d'affichage de l'espace de stockage externe : Legacy View (mode partition) et Filtered View (mode compatibilité). Vous
pouvez utiliser l'API environment.isExternalStorageLegacy() pour vérifier le mode d'exécution de l'APP.

Modification du chemin du fichier en mode partition : Environment.getExternalStorageState() a été remplacé par : context.getExternalFilesDir()

android:installLocation="preferExternal" spécifie une préférence dans le fichier manifeste de l'application pour installer l'application sur un stockage externe

2. Autorisation unique

La demande d'informations de localisation, les autorisations de microphone et de caméra doivent être réacquises à chaque fois, la modification de l'autorisation du numéro de téléphone : l'autorisation READ_PHONE_NUMBERS doit être demandée ou

Le développeur peut demander à l'utilisateur de désactiver la fonction de redémarrage automatique. Après la désactivation, les autorisations actuellement demandées seront conservées et ne seront pas redemandées lors de la prochaine entrée dans l'application, isAutoRevokeWhitelisted(). Si cette méthode renvoie true, le système ne réinitialisera pas automatiquement les autorisations de l'application.

Android 11 modifie les autorisations liées à la téléphonie que votre application utilise pour lire les numéros de téléphone.

(1) Si votre application cible Android 11 et doit accéder à l'API de numéro de téléphone indiquée dans la liste suivante, vous devez demander l'autorisation READ_PHONE_NUMBERS au lieu de l'autorisation READ_PHONE_STATE.

1. La méthode getLine1Number() dans la classe TelephonyManager et la classe TelecomManager.

2. Méthode getMsisdn() non prise en charge dans la classe TelephonyManager.

(2) Si votre application déclare READ_PHONE_STATE pour appeler des méthodes autres que celles de la liste précédente, vous pouvez continuer à demander READ_PHONE_STATE dans toutes les versions d'Android. Toutefois, si vous utilisez uniquement l'autorisation READ_PHONE_STATE pour les méthodes de la liste précédente, mettez à jour votre fichier manifeste comme suit :

1. Modifiez la déclaration de READ_PHONE_STATE afin que votre application n'utilise cette autorisation que sur Android 10 (API niveau 29) et inférieur.

2. Ajoutez l'autorisation READ_PHONE_NUMBERS. L'extrait de déclaration de manifeste suivant illustre ce processus :

Je suppose que tu aimes

Origine blog.csdn.net/hongranzuoxiang/article/details/109842183
conseillé
Classement