longPressFlag = 1; // 长按标志
uint16 keyID = event.GetKeyId();
+ WEARABLE_LOGD("","into key! keyID %u\n",keyID);
if (keyID == static_cast<uint16_t>(ZliteKeyCode::ZLITE_KEY_POWER)) { // 电源按键
// 切换到关机/重启卡片
NativeAbility::GetInstance().ChangeSlice(VIEW_REBOOT);
}
}
}
-
+extern "C" {
+ uint32_t mcu_pm_lcd_on(uint8_t *para, uint32_t para_len);
+ uint32_t mcu_pm_lcd_off(uint8_t *para, uint32_t para_len);
+ uint8_t mcu_pms_is_screen_on(void);
+}
void KeyInputListener::OnKeyRelease(const KeyEvent& event)
{
uint16_t currentViewId = NativeAbility::GetInstance().GetCurSliceId();
uint16 keyID = event.GetKeyId();
if (keyID == static_cast<uint16_t>(ZliteKeyCode::ZLITE_KEY_POWER)) { // 电源按键
if (longPressFlag == 0 && pressFlag == 1) { // 短按电源键
- if (currentViewId == VIEW_MAEKPHONE_SAMPLE || IsCallingNotify() == true) { // 音量卡片
+
+
+ if (currentViewId == VIEW_MAEKPHONE_SAMPLE || IsCallingNotify() == true) { // 音量卡片
// 音量+
CallVolumeDipSwitchControl(1);
- } else if (currentViewId != VIEW_MAIN_SAMPLE) { // 主表盘
+ }else if (currentViewId != VIEW_MAIN_SAMPLE) { // 主表盘
PressAlarmNotify(); // 当前为闹钟通知页面时,先处理闹钟再切换页面
NativeAbility::GetInstance().ChangeSlice(VIEW_MAIN_SAMPLE, TRANSITION_ZOOM);
} else {
if (!MainViewSample::GetInstance()->IsMainView()) { // 当前页面为主表盘的其他页面时,切换回主表盘页面
NativeAbility::GetInstance().ChangeSlice(VIEW_MAIN_SAMPLE);
} else {
- NativeAbility::GetInstance().ChangeSlice(VIEW_APPLIST, TRANSITION_ZOOM);
+ //power键要进入休眠
+ if(mcu_pms_is_screen_on()){
+ mcu_pm_lcd_off(NULL,0);
+ }else{
+ mcu_pm_lcd_on(NULL,0);
+ }
}
}
}
if (currentViewId == VIEW_MAEKPHONE_SAMPLE || IsCallingNotify() == true) { // 音量卡片
// 音量-
CallVolumeDipSwitchControl(0);
+ } else if (currentViewId != VIEW_MAIN_SAMPLE) { // 主表盘
+ PressAlarmNotify(); // 当前为闹钟通知页面时,先处理闹钟再切换页面
+ NativeAbility::GetInstance().ChangeSlice(VIEW_MAIN_SAMPLE, TRANSITION_ZOOM);
} else {
- // 切换到用户配置的快捷卡片
+ PressAlarmNotify(); // 当前为闹钟通知页面时,先处理闹钟再切换页面
+ if (!MainViewSample::GetInstance()->IsMainView()) { // 当前页面为主表盘的其他页面时,切换回主表盘页面
+ NativeAbility::GetInstance().ChangeSlice(VIEW_MAIN_SAMPLE);
+ } else {
+ NativeAbility::GetInstance().ChangeSlice(VIEW_APPLIST, TRANSITION_ZOOM);
+ }
}
}
}
}
return ERRCODE_SUCC;
}
-
+uint8_t mcu_pms_is_screen_on(void)
+{
+ const power_display_svr_api_t *display_api = power_display_svr_get_api();
+ screen_state_t state = display_api->get_screen_state();
+ wstp_print("app get screen state = %u, on is %u, off is %u. \r\n", state, SCREEN_ON, SCREEN_OFF);
+ if( state == SCREEN_ON){
+ return 1;
+ }else{
+ return 0;
+ }
+}
static uint32_t mcu_pms_get_screen_state(uint8_t *para, uint32_t para_len)
{
unused(para_len);