Il existe certains facteurs qui peuvent affecter cela :
-
Une application doit explicitement déclarer qu'il est préférable/possible de l'installer sur une carte SD.
À partir du niveau d'API 8, vous pouvez autoriser votre application à être installée sur le stockage externe (par exemple, la carte SD du périphérique). Il s'agit d'une fonctionnalité facultative que vous pouvez déclarer pour votre application avec l'attribut de manifeste android:installLocation
. Si vous ne déclarez pas cet attribut, votre application sera installée uniquement sur le stockage interne et ne pourra pas être déplacée vers le stockage externe.
(Mise en emphase de ma part)
-
Une application est configurée pour être compilée en utilisant l'API 7 (Froyo) ou inférieure, ce qui ne prend pas en charge l'installation d'une application sur une carte SD (même si elle est installée sur des appareils GingerBread ou plus récents)
La capacité pour votre application de s'installer sur le stockage externe est une fonctionnalité disponible uniquement sur les appareils exécutant le niveau d'API 8 (Android 2.2) ou supérieur. Les applications existantes qui ont été construites avant le niveau d'API 8 s'installeront toujours sur le stockage interne et ne pourront pas être déplacées vers le stockage externe (même sur des appareils avec un niveau d'API 8). Cependant, si votre application est conçue pour prendre en charge un niveau d'API inférieur à 8, vous pouvez choisir de prendre en charge cette fonctionnalité pour les appareils avec un niveau d'API 8 ou supérieur et rester compatible avec les appareils utilisant un niveau d'API inférieur à 8.
(Mise en emphase de ma part)
Les raisons pour lesquelles certaines applications ne sont pas préférables à installer sur une carte SD sont les suivantes :
Lorsque l'utilisateur active le stockage de masse USB pour partager des fichiers avec son ordinateur (ou démonte ou retire autrement le stockage externe), toute application installée sur le stockage externe et actuellement en cours d'exécution est arrêtée. Le système devient effectivement inconscient de l'application jusqu'à ce que le stockage de masse soit désactivé et que le stockage externe soit remonté sur le périphérique. En plus d'arrêter l'application et de la rendre inaccessible à l'utilisateur, cela peut rompre certains types d'applications de manière plus grave. Pour que votre application se comporte de manière constante comme prévu, vous ne devez pas autoriser votre application à être installée sur le stockage externe si elle utilise l'une des fonctionnalités suivantes, en raison des conséquences citées lorsque le stockage externe est démonté :
-
Services
Votre Service
en cours d'exécution sera arrêté et ne sera pas redémarré lorsque le stockage externe sera remonté. [...]
-
Services d'alarme
Vos alarmes enregistrées avec AlarmManager
seront annulées. [...]
-
Moteurs de méthode d'entrée
Votre IME sera remplacé par l'IME par défaut. [...]
-
Fonds d'écran animés
Votre fond d'écran animé en cours d'exécution sera remplacé par le fond d'écran animé par défaut. [...]
-
Widgets d'application
Votre widget d'application sera retiré de l'écran d'accueil. Lorsque le stockage externe est remonté, votre widget d'application ne sera pas disponible pour l'utilisateur à sélectionner jusqu'à ce que le système réinitialise l'application d'accueil (généralement pas avant un redémarrage du système).
-
Gestionnaires de compte
Vos comptes créés avec AccountManager
disparaîtront jusqu'à ce que le stockage externe soit remonté.
-
Adaptateurs de synchronisation
Votre AbstractThreadedSyncAdapter
et toute sa fonctionnalité de synchronisation ne fonctionneront pas jusqu'à ce que le stockage externe soit remonté.
-
Administrateurs de périphérique
Votre DeviceAdminReceiver
et toutes ses capacités administratives seront désactivés, ce qui peut avoir des conséquences imprévues pour la fonctionnalité du périphérique, pouvant persister après le remontage du stockage externe.
-
Receveurs de diffusion écoutant "démarrage terminé"
Le système envoie la diffusion ACTION_BOOT_COMPLETED
avant que le stockage externe ne soit monté sur le périphérique. Si votre application est installée sur le stockage externe, elle ne pourra jamais recevoir cette diffusion.
Si votre application utilise l'une des fonctionnalités énumérées ci-dessus, vous ne devriez pas autoriser votre application à s'installer sur le stockage externe.
(Certaines parties ont été censurées. Elles expliquent ce que les développeurs doivent faire pour que leurs applications fonctionnent correctement après le remontage de la carte SD.)
Note : cette réponse sert d'information générale sur "Pourquoi certaines applications ne peuvent pas être déplacées vers la carte SD".
Source : Développeurs Android : Emplacement d'installation des applications.
1 votes
Que se passe-t-il si vous essayez de déplacer les applications vers une carte SD?
1 votes
@Flow voir ma réponse. Les deux applications ont des widgets intégrés, il est donc fort probable qu'elles ne prennent pas en charge App2SD.
0 votes
Si vous souhaitez déplacer votre application vers la carte SD en raison d'un "faible espace de stockage interne", allez consulter android.stackexchange.com/questions/30620/…