下面列出了android.content.res.Configuration#UI_MODE_TYPE_MASK 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
@Override
public int getCurrentModeType() {
final long ident = Binder.clearCallingIdentity();
try {
synchronized (mLock) {
return mCurUiMode & Configuration.UI_MODE_TYPE_MASK;
}
} finally {
Binder.restoreCallingIdentity(ident);
}
}
/**
* Returns the maximum number of users that can be created on this device. A return value
* of 1 means that it is a single user device.
* @hide
* @return a value greater than or equal to 1
*/
public static int getMaxSupportedUsers() {
// Don't allow multiple users on certain builds
if (android.os.Build.ID.startsWith("JVP")) return 1;
if (ActivityManager.isLowRamDeviceStatic()) {
// Low-ram devices are Svelte. Most of the time they don't get multi-user.
if ((Resources.getSystem().getConfiguration().uiMode & Configuration.UI_MODE_TYPE_MASK)
!= Configuration.UI_MODE_TYPE_TELEVISION) {
return 1;
}
}
return SystemProperties.getInt("fw.max_users",
Resources.getSystem().getInteger(R.integer.config_multiuserMaximumUsers));
}
public static Resources updateNightMode(Resources resource, boolean on) {
DisplayMetrics dm = resource.getDisplayMetrics();
Configuration config = resource.getConfiguration();
final int uiModeNightMaskOrigin = config.uiMode &= ~Configuration.UI_MODE_TYPE_MASK;
final int uiModeNightMaskNew = on ? Configuration.UI_MODE_NIGHT_YES : Configuration.UI_MODE_NIGHT_NO;
if (uiModeNightMaskOrigin != uiModeNightMaskNew) {
config.uiMode &= ~Configuration.UI_MODE_NIGHT_MASK;
config.uiMode |= uiModeNightMaskNew;
resource.updateConfiguration(config, dm);
}
return resource;
}
public boolean isTv() {
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.FROYO) {
return false;
}
int uiMode = getResources().getConfiguration().uiMode;
return (uiMode & Configuration.UI_MODE_TYPE_MASK) == Configuration.UI_MODE_TYPE_TELEVISION
|| getPackageManager().hasSystemFeature(PackageManager.FEATURE_TELEVISION)
|| getPackageManager().hasSystemFeature(PackageManager.FEATURE_LEANBACK)
;
}
public static Resources updateNightMode(Resources resource, boolean on) {
DisplayMetrics dm = resource.getDisplayMetrics();
Configuration config = resource.getConfiguration();
final int uiModeNightMaskOrigin = config.uiMode &= ~Configuration.UI_MODE_TYPE_MASK;
final int uiModeNightMaskNew = on ? Configuration.UI_MODE_NIGHT_YES : Configuration.UI_MODE_NIGHT_NO;
if (uiModeNightMaskOrigin != uiModeNightMaskNew) {
config.uiMode &= ~Configuration.UI_MODE_NIGHT_MASK;
config.uiMode |= uiModeNightMaskNew;
resource.updateConfiguration(config, dm);
}
return resource;
}
public static boolean areWeRunningOnAndroidWear() {
return Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT_WATCH
&& (xdrip.getAppContext().getResources().getConfiguration().uiMode
& Configuration.UI_MODE_TYPE_MASK) == Configuration.UI_MODE_TYPE_WATCH;
}
public static boolean areWeRunningOnAndroidWear() {
return Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT_WATCH
&& (xdrip.getAppContext().getResources().getConfiguration().uiMode
& Configuration.UI_MODE_TYPE_MASK) == Configuration.UI_MODE_TYPE_WATCH;
}
public static boolean areWeRunningOnAndroidWear() {
return Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT_WATCH
&& (xdrip.getAppContext().getResources().getConfiguration().uiMode
& Configuration.UI_MODE_TYPE_MASK) == Configuration.UI_MODE_TYPE_WATCH;
}
public static boolean areWeRunningOnAndroidWear() {
return Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT_WATCH
&& (xdrip.getAppContext().getResources().getConfiguration().uiMode
& Configuration.UI_MODE_TYPE_MASK) == Configuration.UI_MODE_TYPE_WATCH;
}
private static boolean isInVrUiMode(int uiMode) {
// TODO(mthiesse): Use Configuration.UI_MODE_TYPE_VR_HEADSET when building against the O
// sdk.
final int uiModeTypeVrHeadset = 0x07;
return (uiMode & Configuration.UI_MODE_TYPE_MASK) == uiModeTypeVrHeadset;
}