copy msm to sim/uim
ComposeMessageActivity 界面上通过长按短信,弹出复制到卡的菜单,然后通过ContentProvider(contentProvider机制以后再仔细分析)调用到SmsProvider.
(这里的代码都是双份的,因为是双卡手机,分别对应不同的手机卡),在SmsProvider中,分别组织短信的Pdu,然后调用到SmsManager。如图所示
sa3611中,copyMessageToSim()对应libgsmril/ril.cpp/dispatchSmsWrite()
copyMessageToIcc() 对应libcdmaril/ril.cpp/dispatchRilCdmaSmsWriteToRuim() ,其中dispatchRilCdmaSmsWriteToRuim()是新加入的,替代google
的标准函数dispatchRilCdmaSmsWriteArgs();
google原代码中,关于复制短信到卡的java层代码没有实现,但是在Ril层,libril/ril.cpp针对Sim/Uim卡都分别有接口实现,而libril/reference-ril/reference-ril.c只有
RIL_REQUEST_WRITE_SMS_TO_SIM的实现,没有RIL_REQUEST_CDMA_WRITE_SMS_TO_RUIM的实现
现在高通要实现copyMessageToIcc()功能,要做的工作就是在SmsProvider中,正确组织pdu,对应libcdmaril/ril.cpp/dispatchRilCdmaSmsWriteArgs(),或者自己再写个
dispatchRilCdmaSmsWriteToRuim(),然后再调用到qcril中