#android #android-permissions
Вопрос:
Я пытаюсь установить будильник в приложении и открыть его напрямую через намерение, когда появляется разрешение Manifest.Разрешение SET_ALARM предоставлено. В противном случае сначала подайте заявку на получение разрешения, а затем откройте его. Код выглядит следующим образом
val alarmLauncher = registerForActivityResult( ActivityResultContracts.RequestPermission() ) { isGranted: Boolean -gt; if (isGranted) { startActivity(IntentUtils.createAlarm("122",1,1)) }else{ ActivityCompat.requestPermissions(this, arrayOf(Manifest.permission.SET_ALARM),1023) startActivity(IntentUtils.createAlarm("122",1,1)) } } createAlarm.setOnClickListener { alarmLauncher.launch(Manifest.permission.SET_ALARM) }
Но Logcat по-прежнему отображает сообщение об ошибке
Process: com.gcode.toolsforandroid, PID: 21371 java.lang.RuntimeException: Failure delivering result ResultInfo{who=@android:requestPermissions:, request=2107974682, result=-1, data=Intent { act=android.content.pm.action.REQUEST_PERMISSIONS (has extras) }} to activity {com.gcode.toolsforandroid/com.gcode.toolsforandroid.IntentActivity}: java.lang.SecurityException: Permission Denial: starting Intent { act=android.intent.action.SET_ALARM cmp=com.android.deskclock/.HandleSetAlarmActivity (has extras) } from ProcessRecord{b0ef1f8 21371:com.gcode.toolsforandroid/u0a256} (pid=21371, uid=10256) requires com.android.alarm.permission.SET_ALARM at android.app.ActivityThread.deliverResults(ActivityThread.java:5162) .......