J'essaye d'installer des applications depuis Google Play. Je peux comprendre qu'en ouvrant l'URL de la boutique Google Play, cela ouvre Google Play et lorsque j'appuie sur le bouton de 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: // détails? id = com.package.name flg = 0x40080000}
Je suppose que l'activité est onPause()
. Y a-t-il une meilleure façon de le mettre en œuvre? J'essaie de vérifier si l'application a terminé l'installation.