NitrogenにはVolume roker wakeはあっても Home rocker wakeは無い。
どこでどうやって実装しているか、探していき、HOMEキーでのWakeを実現する
設定アプリでの表示
packages/apps/NitrogenSettings/res/xml/nitrogen_settings_volume.xml
<com.nitrogen.settings.preferences.SystemSettingSwitchPreference android:key="volume_wake_screen" android:summary="@string/volume_rocker_wake_summary" android:title="@string/volume_rocker_wake_title" android:defaultValue="false" />
これのandroid:keyで処理しているはず
frameworks/base/core/java/android/provider/Settings.java
/** * Whether to wake the screen with the volume keys, the value is boolean. * @hide */ public static final String VOLUME_WAKE_SCREEN = "volume_wake_screen";
VOLUME_WAKE_SCREENでgrepしてみる
base/services/core/java/com/android/server/policy/PhoneWindowManager.java
mVolumeWakeSupport = Settings.System.getIntForUser(resolver, Settings.System.VOLUME_WAKE_SCREEN,0, UserHandle.USER_CURRENT) != 0;
mVolumeWakeSupportでgrepしてみる base/services/core/java/com/android/server/policy/PhoneWindowManager.java
private boolean isCustomWakeKey(int keyCode) { switch (keyCode) { case KeyEvent.KEYCODE_VOLUME_UP: case KeyEvent.KEYCODE_VOLUME_DOWN: if (DEBUG_WAKEUP) Log.i(TAG, "isOffscreenWakeKey: mVolumeWakeSupport " + mVolumeWakeSupport); return mVolumeWakeSupport; } return false; }
ここか!HOMEを加えればいいのか。
private boolean isCustomWakeKey(int keyCode) { switch (keyCode) { case KeyEvent.KEYCODE_VOLUME_UP: case KeyEvent.KEYCODE_VOLUME_DOWN: case KeyEvent.KEYCODE_HOME: if (DEBUG_WAKEUP) Log.i(TAG, "isOffscreenWakeKey: mVolumeWakeSupport " + mVolumeWakeSupport); return mVolumeWakeSupport; } return false; }
うまくいっているので、設定での表示を変更しておく apps/NitrogenSettings/res/values/nitrogen_strings.xml
<string name="volume_rocker_wake_title">Volume rocker wake</string> <string name="volume_rocker_wake_summary">Pressing the volume keys will wake your device</string>
変更したメッセージ
<string name="volume_rocker_wake_title">Volume Home rocker wake</string> <string name="volume_rocker_wake_summary">Pressing the volume or home keys will wake your device</string>
ついでにデフォルト値をfalseからtrueに変更 packages/apps/NitrogenSettings/res/xml/nitrogen_settings_volume.xml
<com.nitrogen.settings.preferences.SystemSettingSwitchPreference android:key="volume_wake_screen" android:summary="@string/volume_rocker_wake_summary" android:title="@string/volume_rocker_wake_title" android:defaultValue="true" />