Je suis intéressé de savoir si c’est possible d’installer par programme un apk dynamiquement téléchargé depuis une application Android personnalisée.
Réponses
Trop de publicités?Vous pouvez facilement lancer un marché de lien ou une invite pour l'installation:
Intent promptInstall = new Intent(Intent.ACTION_VIEW)
.setDataAndType(Uri.parse("file:///path/to/your.apk"),
"application/vnd.android.package-archive");
startActivity(promptInstall);
Intent goToMarket = new Intent(Intent.ACTION_VIEW)
.setData(Uri.parse("market://details?id=com.package.name"));
startActivity(goToMarket);
Cependant, vous ne pouvez pas installer .apk sans l' autorisation explicite; non, sauf si l'appareil et votre programme est enracinée.
Eh bien, j’ai creusés sources plus profondes et a trouvé des PackageInstaller application de Source Android.
https://github.com/Android/platform_packages_apps_packageinstaller
Du manifeste, j’ai trouvé qu’il nécessite l’autorisation :
Et le processus d’installation s’effectue après confirmation
Oui c'est possible. Mais pour cela vous avez besoin du téléphone pour installer les sources non vérifiées. Par exemple, slideMe. Je pense que la meilleure chose que vous pouvez faire est de vérifier si la demande est présente et envoyer une intention de l'Android Market. vous devriez utiliser quelque chose que le schéma d'url pour l'android Market.
market://details?id=package.name
Je ne sais pas exactement comment démarrer l'activité, mais si vous commencez une activité avec ce type d'url. Il devrait ouvrir le marché android et vous donner le choix d'installer l'application.