public class UiModeManager
extends Object
java.lang.Object | |
↳ | android.app.UiModeManager |
这个类提供对系统uimode服务的访问。 这些服务允许应用程序控制设备的UI模式。 它提供了禁用汽车模式的功能,并可以访问夜间模式设置。
这些工具建立在底层的ACTION_DOCK_EVENT
广播之上,当用户物理地将设备放入和移出扩展坞时发送ACTION_DOCK_EVENT
广播。 当发生这种情况时,UiModeManager系统切换Configuration
到适当的用户界面模式,将关于模式切换广播,并且如果合适启动相应模式活性。 有关更多信息,请参阅广播ACTION_ENTER_CAR_MODE
和ACTION_ENTER_DESK_MODE
。
另外,用户可以手动将系统切换到汽车模式,而无需物理地在坞站中。 在汽车模式下 - 无论是通过用户手动还是物理放置在停靠位置 - 都会显示通知,允许用户退出停靠模式。 因此,此处表示的码头模式可能与底层码头事件广播的当前状态不同。
你不直接实例化这个类; 相反,通过Context.getSystemService(Context.UI_MODE_SERVICE)
检索它。
Constants |
|
---|---|
int |
DISABLE_CAR_MODE_GO_HOME 与 |
int |
ENABLE_CAR_MODE_ALLOW_SLEEP 与 |
int |
ENABLE_CAR_MODE_GO_CAR_HOME 与 |
int |
MODE_NIGHT_AUTO 常量为 |
int |
MODE_NIGHT_NO 常量为 |
int |
MODE_NIGHT_YES 常量为 |
Fields |
|
---|---|
public static String |
ACTION_ENTER_CAR_MODE 当设备的用户界面切换到汽车模式时发送的广播,通过放置在汽车坞站或用户的明确操作。 |
public static String |
ACTION_ENTER_DESK_MODE 当设备的用户界面切换到桌面模式时,通过放置在桌面底座上发送广播。 |
public static String |
ACTION_EXIT_CAR_MODE 当设备的用户界面从车模切换回正常模式时发送广播。 |
public static String |
ACTION_EXIT_DESK_MODE 当设备的用户界面从桌面模式切换回正常模式时发送广播。 |
Public methods |
|
---|---|
void |
disableCarMode(int flags) 如果当前处于汽车模式,请关闭特殊模式。 |
void |
enableCarMode(int flags) 将设备强制进入汽车模式,就像它已经放置在汽车坞站一样。 |
int |
getCurrentModeType() 返回当前的运行模式类型。 |
int |
getNightMode() 返回当前配置的夜间模式。 |
void |
setNightMode(int mode) 设置夜间模式。 |
Inherited methods |
|
---|---|
From class java.lang.Object
|
int DISABLE_CAR_MODE_GO_HOME
与disableCarMode(int)
一起使用的disableCarMode(int)
:作为禁用的一部分,转到正常的家庭活动。 禁用这种方式可确保当前活动(在汽车模式下)和原始家庭活动(通常最后一次不在汽车模式下运行)之间的清洁过渡。
常数值:1(0x00000001)
int ENABLE_CAR_MODE_ALLOW_SLEEP
与enableCarMode(int)
一起使用的enableCarMode(int)
:在汽车模式下允许睡眠模式。 默认情况下,如果未设置此标志,则系统可能会保持完整的唤醒锁定,以保持屏幕打开并防止系统在车载模式下进入睡眠模式。 设置此标志将禁用此类行为,并且如果没有其他用户活动并且不存在其他唤醒锁,则系统可以进入睡眠模式。 设置此标志可以与不需要保持屏幕的汽车底座应用程序相关。
常量值:2(0x00000002)
int ENABLE_CAR_MODE_GO_CAR_HOME
与enableCarMode(int)
一起使用的enableCarMode(int)
:作为启用的一部分,前往汽车之家活动。 通过这种方式,可以确保当前活动(非车模)和汽车之家之间的清洁过渡,这些活动将在汽车模式下作为家庭使用。 即使我们已经处于汽车模式,这将切换到汽车之家的活动。
常数值:1(0x00000001)
int MODE_NIGHT_AUTO
常数为 setNightMode(int)
和 getNightMode()
:根据时间自动打开和关闭夜间模式。
常量值:0(0x00000000)
int MODE_NIGHT_NO
常量为 setNightMode(int)
和 getNightMode()
:从不在夜间模式下运行。
常数值:1(0x00000001)
int MODE_NIGHT_YES
常量为 setNightMode(int)
和 getNightMode()
:始终在夜间模式下运行。
常量值:2(0x00000002)
String ACTION_ENTER_CAR_MODE
当设备的用户界面切换到汽车模式时发送的广播,通过放置在汽车坞站或用户的明确操作。 在发送广播之后,系统将启动类别为CATEGORY_CAR_DOCK
的意图ACTION_MAIN
以显示汽车UI,这通常是应用程序将实现以提供其自己的接口的应用程序。 但是,应用程序也可以监视此意图,以便通过将广播结果设置为RESULT_CANCELED
来获知模式更改或防止显示正常车辆UI。
String ACTION_ENTER_DESK_MODE
当设备的用户界面切换到桌面模式时,通过放置在桌面底座上发送广播。 在发送广播之后,系统将启动类别为CATEGORY_DESK_DOCK
的目标ACTION_MAIN
以显示桌面UI,这通常是应用程序为实现其自己的界面而实现的。 但是,应用程序也可以监视此Intent,以便通过将广播结果设置为RESULT_CANCELED
来获知模式更改或防止显示正常桌面UI。
String ACTION_EXIT_CAR_MODE
当设备的用户界面从车模切换回正常模式时发送广播。 通常由汽车模式应用程序使用,当用户退出汽车模式时退出。
String ACTION_EXIT_DESK_MODE
当设备的用户界面从桌面模式切换回正常模式时发送广播。 通常由桌面模式应用程序使用,当用户退出桌面模式时退出。
void disableCarMode (int flags)
如果当前处于汽车模式,请关闭特殊模式。
Parameters | |
---|---|
flags |
int : May be 0 or DISABLE_CAR_MODE_GO_HOME . |
void enableCarMode (int flags)
将设备强制进入汽车模式,就像它已经放置在汽车坞站一样。 这将导致设备切换到汽车之家用户界面作为模式切换的一部分。
Parameters | |
---|---|
flags |
int : Must be 0. |
int getCurrentModeType ()
返回当前的运行模式类型。 可能是一个Configuration.UI_MODE_TYPE_NORMAL
, Configuration.UI_MODE_TYPE_DESK
, Configuration.UI_MODE_TYPE_CAR
, Configuration.UI_MODE_TYPE_TELEVISION
, Configuration.UI_MODE_TYPE_APPLIANCE
,或Configuration.UI_MODE_TYPE_WATCH
。
Returns | |
---|---|
int |
int getNightMode ()
返回当前配置的夜间模式。
可能是以下之一:
MODE_NIGHT_NO
MODE_NIGHT_YES
MODE_NIGHT_AUTO
-1
on errorReturns | |
---|---|
int |
the current night mode, or -1 on error |
也可以看看:
void setNightMode (int mode)
设置夜间模式。
该模式可以是以下之一:
MODE_NIGHT_NO
sets the device into notnight
modeMODE_NIGHT_YES
sets the device into night
modeMODE_NIGHT_AUTO
automatically switches between night
and notnight
based on the device's current location and certain other sensors注意:在API 22及更低版本中,只有在设备上启用了car
或desk
模式时,夜间模式的更改才有效。 从API 23开始,对夜间模式的更改始终有效。
Parameters | |
---|---|
mode |
int : the night mode to set |
也可以看看: