Думаю, короткий вопрос: возможно ли получить рабочий обратный вызов с помощью onActivityResult после установки / не установки приложения из Google Play Store?
Я могу отправить пользователя в приложение (при условии, что у него есть Google Play Store и используя имя пакета в URL) с:
Intent marketIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=" + appPackageName));
marketIntent.putExtra(Intent.EXTRA_RETURN_RESULT, true);
startActivityForResult(marketIntent, 1);
Я хотел бы получить результат здесь:
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 1) {
if (resultCode == RESULT_OK) {
Log.d("TAG", "onActivityResult: user accepted the install");
} else if (resultCode == RESULT_CANCELED) {
Log.d("TAG", "onActivityResult: user cancelled the install");
} else if (resultCode == RESULT_FIRST_USER) {
Log.d("TAG", "onActivityResult: failed to install");
}
}
}
Я бы предпочел использовать Intent.ACTION_INSTALL_PACKAGE
чем Intent.ACTION_VIEW
для установки, но информация относительно того, как использовать первый, ограничена. Тем не менее, Intent.ACTION_INSTALL_PACKAGE
представляется устаревшим с уровня API 29, поэтому я принимаю решения, которые тоже используют PackageInstaller
.
Кстати, код, который я разместил, некорректен, потому что он всегда возвращает resultCode == RESULT_CANCELED
при возврате в приложение.