android如何获取当前是处于白天模式或黑夜模式
时间: 2023-11-28 18:03:44 浏览: 61
在Android 10及以上版本中,可以使用`UiModeManager`获取当前设备是否处于夜间模式。
获取`UiModeManager`实例的方法有两种:
1. 通过`Context`获取:
```java
UiModeManager uiModeManager = (UiModeManager) context.getSystemService(Context.UI_MODE_SERVICE);
```
2. 直接获取:
```java
UiModeManager uiModeManager = context.getApplicationContext().getSystemService(UiModeManager.class);
```
然后可以通过`getNightMode()`方法获取当前的模式,返回值有三种:
- `UiModeManager.MODE_NIGHT_NO`:当前不是夜间模式;
- `UiModeManager.MODE_NIGHT_YES`:当前是夜间模式;
- `UiModeManager.MODE_NIGHT_UNDEFINED`:当前模式未定义。
示例代码:
```java
UiModeManager uiModeManager = context.getSystemService(UiModeManager.class);
int mode = uiModeManager.getNightMode();
if (mode == UiModeManager.MODE_NIGHT_YES) {
// 当前是夜间模式
} else {
// 当前不是夜间模式
}
```
需要注意的是,`getNightMode()`方法只能获取当前的模式,无法监听模式的变化。如果需要监听模式的变化,可以注册`UiModeManager.OnUiModeChangedListener`接口。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)