首页 > 解决方案 > 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() 方法来更改系统时间?

标签: javaandroidpermissions

解决方案


推荐阅读