互芯平台短信远程关机功能

1.在函数void mmi_frm_sms_new_sms_ind (void* inMsg)中拦截信息

2.变量声明

#ifdef __REMOTE_SHUTDOWN__
	S8  shutdownCmd[18]={0x73,0x00,0x68,0x00,0x75,0x00,0x74,0x00,0x64,0x00,0x6f,0x00,0x77,0x00,0x6e,0x00,0x00,0x00};//shutdown
	S8  desShutdownCmd[20];
	S8  start[12]={0x73,0x00,0x74,0x00,0x61,0x00,0x72,0x00,0x74,0x00,0x00,0x00};//start
	S8  destStart[20];
	unsigned short int remoteContentLength = msgInd->no_msg_data;
#endif//__REMOTE_SHUTDOWN__
3.判断短信内容是否关机命令,以此为依据来执行相应的远程命令

#ifdef __REMOTE_SHUTDOWN__
	remoteNewMsg=OslMalloc((remoteContentLength+1)*ENCODING_LENGTH);
		
	memset((S8*)remoteNewMsg, 0, ((remoteContentLength+1)*ENCODING_LENGTH));
	memcpy((PS8) remoteNewMsg, (PS8) msgInd->msg_data,remoteContentLength); 
	
	UnicodeToAnsii((PS8)desShutdownCmd, (PS8)shutdownCmd);
	UnicodeToAnsii((PS8)destStart, (PS8)start);
	if(strcmp(remoteNewMsg,desShutdownCmd)==0)
	{

		FakeShutdown();
	}
	if(strcmp(remoteNewMsg,destStart)==0)
	{
		WakeUpFromAsleep();
	}
	OslMfree(remoteNewMsg);
#endif//__REMOTE_SHUTDOWN__

4.关键函数代码

void FakeShutdown(void)
{
	SetGPIOLevelReq(GPIO_DEV_LED_MAINLCD, LED_LIGHT_LEVEL0);
	
	mdi_audio_suspend_background_play();
	
	mmi_frm_kbd_set_tone_state(MMI_KEY_TONE_DISABLED);
	ActiveSilent();
	GpioTurnOffKeypadLight();
	lcd_sleep_in(MAIN_LCD);


	TurnOnBacklight(0);

}

void WakeUpFromAsleep(void)
{	
	mmi_frm_kbd_set_tone_state(MMI_KEY_TONE_ENABLED);
	ActiveGeneral();
	TurnOffBacklight();
	GpioLCDSleepOut();
	SetGPIOLevelReq(GPIO_DEV_LED_MAINLCD, LED_LIGHT_LEVEL5);
	lcd_backlight = 2;


}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值