J'essaie d'installer des applications à partir de Google Play. Je peux comprendre qu'en ouvrant l'URL du magasin Google Play, cela ouvre le Google Play et lorsque j'appuie sur le bouton retour, l'activité reprend.
Intent marketIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(appURL));
marketIntent.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY | Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET);
startActivity(marketIntent);
Quand je suis retourné à l'activité, j'ai essayé d'appeler ceci onResume()
pour vérifier si l'application est installée, mais je reçois une erreur :
@Override
protected void onResume() {
super.onResume();
boolean installed = false;
while (!installed) {
installed = appInstalledOrNot(APPPACKAGE);
if (installed) {
Toast.makeText(this, "App installed", Toast.LENGTH_SHORT).show();
}
}
}
private boolean appInstalledOrNot(String uri) {
PackageManager pm = getPackageManager();
boolean app_installed = false;
try {
pm.getPackageInfo(uri, PackageManager.GET_ACTIVITIES);
app_installed = true;
}
catch (PackageManager.NameNotFoundException e) {
app_installed = false;
}
return app_installed ;
}
L'erreur est la suivante :
E/AndroidRuntime(796) : java.lang.RuntimeException : Impossible de démarrer l'activité ComponentInfo{com.example.appinstaller/com.example.appinstaller.MainActivity} : Android.content.ActivityNotFoundException : Aucune activité trouvée pour gérer l'intention { act=Android.intent.action.VIEW dat=market://details?id=com.package.name flg=0x40080000 }
Je suppose que l'activité est onPause()
. Existe-t-il une meilleure façon de l'implémenter ? J'essaie de vérifier si l'application a fini de s'installer.