在以前,如果我们需要发送一条短信,就是不通过写短信的方式,而是直接把发送内容发到某个号码上,那么我们需要自己写个发短信的函数.
而在mtk较新的版本上,我们就不需要这么费力气了,可以直接使用api就可以了。
void mmi_sms_send_text_msg(S8 **ucs2_addr_list, U16 addr_count, S8* ucs2_content)
使用这个函数就可以了,第一个参数是收件人的地址,是指针的指针,而且是unicode的,第二个参数就是收件人的个数,第三个参数就是发送的内容了。
#define SMSUMBER_ITEM 5
typedef struct
{
unsigned char PhoneNumber[SMSUMBER_ITEM][(MAX_PB_NUMBER_LENGTH+1)*ENCODING_LENGTH];
}mmi_phonenumber_struct;
void SendSmsToRecipients(void)
{
S16 Error;
mmi_phonenumber_struct NumItem;
mmi_phonenumber_struct SmsNum;
U8 i = 0;
S8 *AddressNumber[SMSUMBER_ITEM] ={NULL};
unsigned char SOSDataTemp[100] = {0};
memset(&NumItem,0,sizeof(mmi_phonenumber_struct));
memset(&SmsNum,0,sizeof(mmi_phonenumber_struct));
ReadRecord(NVRAM_EF_LID, 1, (void*)&NumItem, NVRAM_EF_SIZE, &Error);
for(i = 0;i< SMSUMBER_ITEM;i++)
{
mmi_asc_to_ucs2((S8*)SmsNum.PhoneNumber[i] , (S8*)NumItem.PhoneNumber[i]);
AddressNumber[i] = (S8 *)&SmsNum.PhoneNumber[i];
if (mmi_sms_check_sms_number((S8*)SmsNum.PhoneNumber[i]) == MMI_TRUE)
{
mmi_sms_send_text_msg((S8**)&AddressNumber[i],1,(S8*)GetString(STR_ SMS_TEXT));
}
}
}
本来想把代码全部贴上的,害怕泄露了,到时候查到我了,只贴了部分代码,这个是做的一个小功能,就是用户编辑5个联系人,在紧急情况下,用户按一个键,手机就会报警,先是向这5个人发送短信,然后就不停的呼叫他们,如果第一个呼叫不通,就呼叫第二个,以此类推,如果第一个人接了电话,并挂了,还会呼叫第二个,只有再将按键按一下,才会不再呼叫了。
csdn 插入代码的功能并不是很好,所以就直接贴了。