Класс SecurityException
Класс SecurityException
бросается, когда процесс нарушает
ограничение платформы: нет разрешения,
чужой компонент закрыт exported=false
или неверная подпись.
Возникает при старте activity,
вызове провайдера и системных API
без
checkSelfPermission.
Пример
Давайте обработаем SecurityException при небезопасном вызове:
import android.os.Bundle
import android.util.Log
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.compose.material3.Text
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
val line = try {
sendBroadcast(android.content.Intent("abcde"))
"abcde"
} catch (e: SecurityException) {
Log.w("abcde", "12345")
"12345"
}
setContent {
Text(text = line)
}
}
}
Система отклоняет широковещательный intent
и бросает SecurityException,
приложение показывает запасной текст.
Смотрите также
-
метод
checkSelfPermission,
который проверяет разрешение заранее -
класс
ActivityNotFoundException,
другая ошибка при startActivity -
класс
FileUriExposedException,
связанная с политикой URI -
класс
Intent,
к которому применяют флаги доступа