Пользователи хотят, чтобы мое приложение открывало ссылки без приложений с приложением untappd. Я долго оглядывался и обнаружил, что хотя untappd не поддерживает обычные URL-адреса http, они поддерживают схему URL-адресов "untappd://beer/[beerId]".
Однако приложение untappd не сразу возвращается в мое приложение, когда нажатие кнопки возврата; требуется до двух или более нажатий, чтобы вернуть его в какое-то «домашнее состояние», после чего следующее нажатие кнопки возврата, наконец, вернется в мое приложение. После того, как он достиг этого «домашнего состояния», я могу свободно щелкать ссылки из своего приложения, и оно go вернется в мое приложение всего одним нажатием кнопки возврата (как и ожидалось), но, конечно, это длится только до тех пор, пока пользователь не использует untappd на некоторое время и меняет свое состояние.
Пользователи не обязательно будут знать о трюке с несколькими кнопками возврата и могут подумать, что им нужно нажать кнопку домой и / или выполнить поиск в открытых приложениях, чтобы вернуться в мое приложение, что было бы плохо для пользователя. По крайней мере, это был мой первый инстинкт, когда я сам его использовал.
Есть ли способ запустить приложение, гарантируя, что первое нажатие кнопки возврата в новом приложении вернется в мое приложение?
Код, который я сейчас использую для прослушивателя при нажатии:
Intent intent = new Intent();
intent.setAction(Intent.ACTION_VIEW);
intent.addCategory(Intent.CATEGORY_BROWSABLE);
intent.setData(Uri.parse(appUrlPrefix + beerId));
PackageManager packageManager = getPackageManager();
List<ResolveInfo> activities = packageManager.queryIntentActivities(intent,
PackageManager.MATCH_DEFAULT_ONLY);
boolean isIntentSafe = activities.size() > 0;
if (!isIntentSafe) {
intent.setData(Uri.parse(urlPrefix + beerId));
}
startActivity(intent);