Браузерное приложение не всегда распознает намерение URI на AndroidAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Браузерное приложение не всегда распознает намерение URI на Android

Сообщение Anonymous »

У меня есть функция, которая проверяет, существует ли браузерное приложение, способное выполнить заданное действие с URI, и выполняет это действие. (Это необходимо, поскольку требуются определенные действия, если настройки браузера не настроены.)

Код: Выделить всё

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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»