【发布时间】:2022-11-11 10:05:37
【问题描述】:
我的app 已在 Google Play 上发布,目前针对 Android 12,它是一款闹钟应用程序。在最新版本中,我使用了SCHEDULE_EXACT_ALARM 权限,并根据需要在运行时检查和请求此权限。
在检查 Android 13 的行为更改后,我发现有一个新权限 USE_EXACT_ALARM,它具有非常严格的用例,如 here 所列。我的应用程序是一个闹钟应用程序,因此它有资格使用此权限。 (使用这个权限的一个好处是系统会自动授予,用户不能撤销。)
我将此权限添加到AndroidManifest.xml 文件并删除了SCHEDULE_EXACT_ALARM 权限。然而,Android Studio 给了我一个关于方法 alarmManager.setAlarmClock(...) 的 lint 警告:
这是警告的内容:
使用
setAlarmClock设置精确警报需要用户的SCHEDULE_EXACT_ALARM权限或权力豁免;它适用于用户有意安排在精确时间发生的操作的应用程序,例如闹钟、时钟、日历等。查看有关此权限的 javadoc 以确保您的用例有效。Android Developers website 表示我可以选择声明任何一个基于我的用例的权限。但是,Android lint 告诉我,无论我是否已经声明了
USE_EXACT_ALARM,我都应该声明SCHEDULE_EXACT_ALARM。我应该怎么办?关注网站并抑制 lint?
【问题讨论】:
-
我也有同样的问题,你找到答案了吗?
-
@AVEbrahimi 我决定通过关注网站只使用
USE_EXACT_ALARM。它似乎这取代了SCHEDULE_EXACT_ALARM权限。 -
您是否在 Android 12 上进行了测试?在 Android 12 上,如果没有 SCHEDULE_EXACT_ALARM 它会在设置警报时崩溃