最近需要实现不调用intent,而是自行使用API发送彩信。在网上查了一阵,比如这个
http://www.linuxidc.com/Linux/2011-08/41609.htm
但是会出现超时等问题,后来调试了好久成功了,记录以备后查。
想要发送一条彩信的整个过程是这样的:
1 接入点要切换为CMWAP,使用CMNET或WIFI等是无法发送的。
2 要从APN中获得CMWAP接入点的网关,代理等,向这个地址post数据。
3 彩信自身有定义好的编码格式,我们要使用google的pdu,或诺基亚的彩信库。
几个关键点:
1 怎么切换接入点:
android:connMgr.startUsingNetworkFeature(ConnectivityManager.TYPE_MOBILE, "enableMMS");
ophone:connMgr.startUsingNetworkFeature(ConnectivityManager.TYPE_MOBILE, "wap");
注意方法返回1时要使用receiver来监听切换完毕事件。
2 连接彩信网关,建议使用apache的http封装类,注意要检查代理,国内不使用代理是连接不上的。
3 网上有开源的pdu库,也可以使用Nokia MMS Library,建议使用前者。
4 普通android在wifi连接的情况下要发彩信还要特殊处理,需要设置路由地址。
等有时间整理一版demo传上来。