java - setTimeZone() 在 android 9 (API 28) 中不起作用
问题描述
我想为我的系统应用程序 setTimeZone()。它在设备 Android 4.2 (API 17) 中运行良好。但是当我迁移到设备 Android 9 (API 28) 时,我收到了错误消息:
java.lang.SecurityException: Neither user 11029 nor current process has android.permission.SET_TIME_ZONE
我已经添加了这些权限,但没有任何反应。
<uses-permission android:name="android.permission.SET_TIME_ZONE" tools:ignore="ProtectedPermissions" android:protectionLevel="signature|system"></uses-permission>
<uses-permission android:name="android.permission.SET_TIME" tools:ignore="ProtectedPermissions"/>
这是我的代码:
public void setTimeZone(String timeZone) {
((AlarmManager) mContext.getApplicationContext().getSystemService(Context.ALARM_SERVICE))
.setTimeZone(timeZone);
}
我想保留此功能,您有什么建议我应该使用什么来代替 AlarmManager.setTimeZone() 方法来更改系统时间?
解决方案
推荐阅读
- docker - Ping 不会安装在 Docker 容器中
- django - DjangoRestFramework,我想要名称而不是 ID,
- c++ - 具有模板参数和 crtp 的类,仅按类名调用构造函数
- javascript - 像 SQL 一样使用 IndexedDB。使用不在范围内的多个索引值进行查询
- javascript - 通过在 URL 末尾附加一个变量来设置加载时的默认主题
- r - R: 为什么使用 download.file() 下载的 PNG 文件无法打开?
- java - 断字问题:没有得到负例的预期 O/P
- c++ - For 循环只比较数组的第一部分而不是整个
- sql-server - 将不常见的 Datetime 字符串转换为 Datetime 类型
- python - 如何将 python 列表发送到瓶子服务器?