blob: aca8ab4ad613bf1e38fdffbf01c97aad4f9e21f6 [file] [log] [blame]
package android.app;
import android.os.RemoteException;
import android.os.ServiceManager;
import android.util.Log;
/**
* This class provides access to the system uimode services. These services
* allow applications to control UI modes of the device.
* It provides functionality to disable the car mode and it gives access to the
* night mode settings.
*
* <p>You do not instantiate this class directly; instead, retrieve it through
* {@link android.content.Context#getSystemService
* Context.getSystemService(Context.UI_MODE_SERVICE)}.
*/
public class UiModeManager {
private static final String TAG = "UiModeManager";
public static final int MODE_NOTNIGHT = 1;
public static final int MODE_NIGHT = 2;
public static final int MODE_AUTO = 3;
private IUiModeManager mService;
/*package*/ UiModeManager() {
mService = IUiModeManager.Stub.asInterface(
ServiceManager.getService("uimode"));
}
/**
* Disables the car mode.
*/
public void disableCarMode() {
if (mService != null) {
try {
mService.disableCarMode();
} catch (RemoteException e) {
Log.e(TAG, "disableCarMode: RemoteException", e);
}
}
}
/**
* Sets the night mode. Changes to the night mode are only effective when
* the car mode is enabled on a device.
*
* <p>The mode can be one of:
* <ul>
* <li><em>{@link #MODE_NOTNIGHT}<em> - sets the device into notnight
* mode.</li>
* <li><em>{@link #MODE_NIGHT}</em> - sets the device into night mode.
* </li>
* <li><em>{@link #MODE_AUTO}</em> - automatic night/notnight switching
* depending on the location and certain other sensors.</li>
*/
public void setNightMode(int mode) {
if (mService != null) {
try {
mService.setNightMode(mode);
} catch (RemoteException e) {
Log.e(TAG, "setNightMode: RemoteException", e);
}
}
}
/**
* Returns the currently configured night mode.
*
* @return {@link #MODE_NOTNIGHT}, {@link #MODE_NIGHT} or {@link #MODE_AUTO}
* When an error occurred -1 is returned.
*/
public int getNightMode() {
if (mService != null) {
try {
return mService.getNightMode();
} catch (RemoteException e) {
Log.e(TAG, "getNightMode: RemoteException", e);
}
}
return -1;
}
}