我有一个设置闹钟的应用程序。我使用以下代码来请求用户的许可:
Intent intent = new Intent(
"android.settings.REQUEST_SCHEDULE_EXACT_ALARM",
Uri.parse("package:"+ getPackageName())
);
someActivityResultLauncher.launch(intent);
我在《启示录》中加入了许可:
<uses-permission android:name="android.permission.SCHEDULE_EXACT_ALARM"/>
当我单击启动Intent的按钮时,我可以看到:
但我不能切换按钮的权限,我不知道为什么。
1条答案
按热度按时间dl5txlt91#
当
AndroidManifest.xml
请求权限时,它将返回isGranted = true
。实际上,意图是
Settings.ACTION_REQUEST_SCHEDULE_EXACT_ALARM
:监听广播操作
AlarmManager.ACTION_SCHEDULE_EXACT_ALARM_PERMISSION_STATE_CHANGED
。此外,还有权限
USE_EXACT_ALARM
,目标是API33
。参见行为变化:准确的警报许可。