论坛» 活动中心» 合作大赛

关于sms系统的问题,管理员请进

菜鸟
2010-10-04 16:20 1楼
我们小组想做一个跟短消息有关的实用程序,但是在一个关键问题上卡住了,那就是我们不知道怎么增加和获取手机里的短消息。虽然vre提供了像vm_sms_add_msg,vm_sms_read_msg的函数,但是文档里面对它们的介绍十分简略,示例代码更是一点没有。我们小组的成员研究了很长时间均不能成功使用这些功能(总是返回-1)。不知道您可不可以指教一下,不胜感激
助工
2010-10-08 13:27 2楼
请问您拿到API文档了吗?
里面有对参数的说明。
菜鸟
2010-10-08 22:01 3楼
我拿到了,里面的说明也看过了,但还是不能成功。能不能提供一个使用示例?
助工
2010-10-14 14:04 4楼

你好,根据你之前贴的代码分析,可能是输入的号码编码不对。
需要输入的是ucs2编码。

菜鸟
2010-10-19 13:09 5楼
我也试过这样:
FillPhoneNum(msg_data.number,"10086");

msg_data.sim_id=VM_MMI_SIM_1;
msg_data.status=VM_SMS_STATUS_UNREAD;
msg_data.storage_type=VM_SMS_STORAGE_ME;
msg_data.timestamp.year=2010;
msg_data.timestamp.hour=17;
msg_data.timestamp.min=40;
msg_data.timestamp.mon=1;
msg_data.timestamp.sec=10;
msg_data.content=vm_malloc(sizeof(vm_ucs2_string("Hello world")));
memcpy(msg_data.content,vm_ucs2_string("Hello world"),sizeof(vm_ucs2_string("Hello world")));
msg_data.content_size=sizeof(vm_ucs2_string("Hello world"));
但是errorCode=vm_sms_add_msg(&msg_data,g,NULL);照样返回-1(REQ_ERROR)

FillPhoneNum是将一个字符串中的数字一个个存到一个VMINT8数组中:
VMINT FillPhoneNum(VMINT8 num[],VMSTR s)
{
VMINT len;
VMINT i;
len=strlen(s);
for (i=0;i{
num[i]=s[i]-'0';
}
return i;
}
助工
2010-10-28 20:11 6楼
msg_data.number 中的号码应该是ucs2编码
你的代码中不是。
请参考以下代码:

strcpy(number,"10086");
vm_ascii_to_ucs2((VMWSTR)wnumber, (VM_SMS_MAX_ADDR_LEN + 1) * 2, number);
vm_safe_wstrcpy((VMWSTR)msg_data.number,VM_SMS_MAX_ADDR_LEN, (VMWSTR)wnumber);
共6条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册]