Код: Выделить всё
fun handleExternalBrowser(uriString: String) {
val uri = uriString.toUri()
val intent = Intent(Intent.ACTION_VIEW, uri)
val packageManager = this.packageManager
val canOpenUrl = if (Build.VERSION.SDK_INT >= 33) {
packageManager.queryIntentActivities(
intent, PackageManager.ResolveInfoFlags.of(
PackageManager.MATCH_DEFAULT_ONLY.toLong()
)
).isNotEmpty()
} else {
packageManager.queryIntentActivities(
intent,
PackageManager.MATCH_DEFAULT_ONLY
).isNotEmpty()
}
if (canOpenUrl) {
try {
this.startActivity(intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK))
} catch (e: Exception) {
// Failure log output
}
} else {
// Failure log output
}
}
Код: Выделить всё
Я попробовал выполнить функцию, которая запускает внешний браузер с определенным URI, чтобы проверить, сможет ли он обработать запрос. Я ожидал, что приложение браузера откроется и перейдет к указанному URI без каких-либо проблем. Однако иногда функция не работает, даже если на устройстве установлен браузер. Переустановка моего приложения, похоже, временно решает проблему.
Подробнее здесь: https://stackoverflow.com/questions/790 ... on-android
Мобильная версия