Наконец вместо startActivity (намерение) попробуйте использовать startActivityForResult (намерение, 1); и в методе обратного вызова добавьте следующий код.
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// requestCode == 1 means the result for package-installer activity
if (requestCode == 1)
{
// resultCode == RESULT_CANCELED means user pressed `Done` button after installation
if (resultCode == RESULT_CANCELED) {
Toast.makeText(this, "Done button pressed", Toast.LENGTH_SHORT).show();
}
else{
//Check for the packagename to verify if user clicked on cancle button
return isAppInstalled(context, "com.packagename");
}
}
super.onActivityResult(requestCode, resultCode, data);
}
Теперь нам нужно создать метод, который будет проверять конкретный пакет в системе, установлено ли приложение, и будет возвращать true, иначе false.
public static boolean isAppInstalled(Context context, String packageName) {
try {
context.getPackageManager().getApplicationInfo(packageName, 0);
return true;
}
catch (PackageManager.NameNotFoundException e) {
return false;
}
}
Надеюсь, это поможет ....