MTK获取IMSI,回调问题

wave2050 2009-11-24 06:01:45
我在函数中加了 获取IMSI的函数:
test1.c
void getimsi(void *Msg){}

void func1()
{
SetProtocolEventHandler(getimsi, MSG_ID_MMI_SMU_GET_IMSI_RSP);
mmi_frm_sms_send_message(MOD_MMI, MOD_L4C, 0, MSG_ID_MMI_SMU_GET_IMSI_REQ, NULL, NULL);
}

void func2()
{}

main.c
void main()
{
func1();
func2();
}

我在模拟器上跟踪,回调函数每次都是等 func2() 执行完后要推出才触发,能不能等 回调触发后 才执行 func2??各位大虾帮帮忙
...全文
309 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
njcy80 2010-04-02
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 defonds 的回复:]
引用 2 楼 oo_oo_ 的回复:
搜索一下MSG_ID_MMI_SMU_GET_IMSI_RSP,看别人是怎么调用的
把func2()放到
void getimsi(void *Msg)
{
func2();
}
up
[/Quote]
这样是可以的
Defonds 2010-03-27
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 oo_oo_ 的回复:]
搜索一下MSG_ID_MMI_SMU_GET_IMSI_RSP,看别人是怎么调用的
把func2()放到
void getimsi(void *Msg)
{
func2();
}
[/Quote]up
baomihua1985 2010-03-26
  • 打赏
  • 举报
回复
LZ得到的imsi放在数组中,当执行了fun1就得到了imsi,数组长度不为0,若没有执行fun1,数组长度为0。
这里你可以开一个定时器函数 void timer();
void timer()
{
if(len==0)
StartTimer(TimeId,delay,timer);//参数具体用法参照平台现有
else
func2();

}
Joyfulmath 2010-03-25
  • 打赏
  • 举报
回复
在RSP中调用
bsr2009 2010-03-18
  • 打赏
  • 举报
回复
是异步回调。用2L的方法试一下。
linkliucs 2010-03-18
  • 打赏
  • 举报
回复
func2()放到回调中去试试这个是最为方便的做法,但是有可能导致代码比较牵扯。还有中做法就是
在func2()中判断是否已经有get imsi rsp了,如果没有的话,可以启用一个定时器 过1秒中再去执行 同样还是要判断 是否有rsp了。。 这样的好处就是 如果func2()中还需要其他事件的rsp的话,都可以兼容进来。。。
xuanwenchao 2010-03-12
  • 打赏
  • 举报
回复
在对应的rsp函数中调用就可以了.
Defonds 2010-03-11
  • 打赏
  • 举报
回复
引用楼主 wave2050 的回复:
我在函数中加了 获取IMSI的函数:
test1.c
void getimsi(void *Msg){}

void func1()
{
          SetProtocolEventHandler(getimsi, MSG_ID_MMI_SMU_GET_IMSI_RSP);
          mmi_frm_sms_send_message(MOD_MMI, MOD_L4C, 0, MSG_ID_MMI_SMU_GET_IMSI_REQ, NULL, NULL);
}

void func2()
{}

main.c
void main()
{
        func1();
        func2();
}

我在模拟器上跟踪,回调函数每次都是等 func2() 执行完后要推出才触发,能不能等 回调触发后 才执行 func2??各位大虾帮帮忙
异步回调下看看。
xmoon1983 2010-03-05
  • 打赏
  • 举报
回复
mark一下。学习。
fu256 2010-01-13
  • 打赏
  • 举报
回复
Oo_Oo_ 回复是正确的做法,要体会异步回调的概念。
Oo_Oo_ 2009-11-27
  • 打赏
  • 举报
回复
搜索一下MSG_ID_MMI_SMU_GET_IMSI_RSP,看别人是怎么调用的
把func2()放到
void getimsi(void *Msg)
{
func2();
}
  • 打赏
  • 举报
回复
func2()放到回调中去试试

790

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 其他移动相关
社区管理员
  • 移动开发其他问题社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧