FAQ n°16927, publiée le 09/07/2018, mise à jour le 15/10/2020
Que faire sous Android 8 si l'installation d'un APK avec la fonction LanceAppliAssociée n'est plus autorisée ?

La fonction LanceAppliAssociée permet depuis une application Android de lancer :

  • l'installation d'une autre application APK Android,
  • une mise à jour de l'application en cours. 

Cette possibilité, accessible à toutes les applications dans les versions de Android antérieurs à la 8, nécessite à partir de la version 8 une permission supplémentaire. Cette permission s'ajoute lors de la génération de l'APK :


  • A partir de la version 24 et suivantes : 
    • générer l'application Android,
    • à l'étape "Permissions de l'application",
    • clic sur "Ajouter",
    • sélectionner "android.permission.REQUEST_INSTALL_PACKAGES",
    • valider.

  •  Dans les versions antérieures à la 24, la permission doit être insérée dans le manifeste : 
    • générer l'application Android,
    • à l'étape "Configuration" cliquer "Configuration avancée",
    • cliquer sur "Editer le manifeste",
    • sélectionner la racine "manifest",
    • cliquer sur le + avec la bulle d'aide "Ajouter un nœud fils (nom)",
    • nom du nœud "uses-permission" (afin de surcharger l'existant), attribut : "android:name",
    • valider la création de l'attribut,
    • dans la valeur du nouveau attribut, donner la permission "android.permission.REQUEST_INSTALL_PACKAGES"
    • valider l'édition du manifeste afin de poursuivre la génération et publier à nouveau l'application.




Notes : 

  • Indépendamment de la version de Android, pour pouvoir lancer l'installation d'un autre APK ce dernier doit être placé dans une dossier accessible depuis l'extérieur (stockage externe).

  • L'assistant de génération de l'application fait normalement un ajout automatique des permissions en analysant les fonctions effectivement appelées par l'application. Mais cette permission ne peut pas être ajoutée automatiquement, car la fonction LanceAppliAssociée a d'autres possibilités de lancement qui ne nécessitent pas cette permission.

Voir aussi: LanceAppliAssociée, Android, 8