- try {
- Class<?> smsManagerClass = null;
- Class[] divideMessagePamas = { String.class };
- Class[] sendMultipartTextMessagePamas = { String.class,String.class, ArrayList.class, ArrayList.class,ArrayList.class, int.class };
- Method divideMessage = null;
- Method sendMultipartTextMessage = null;
- smsManagerClass = Class.forName("android.telephony.SmsManager");
- Method method = smsManagerClass.getMethod("getDefault", new Class[]{});
- Object smsManager = method.invoke(smsManagerClass, new Object[]{});
- divideMessage = smsManagerClass.getMethod("divideMessage",divideMessagePamas);
- sendMultipartTextMessage = smsManagerClass.getMethod("sendMultipartTextMessage", sendMultipartTextMessagePamas);
- ArrayList<String> magArray = (ArrayList<String>) divideMessage.invoke(smsManager, content);
- sendMultipartTextMessage.invoke(smsManager,phone, "", magArray, null, null, <span style="color: rgb(51, 51, 51); font-family: Arial, Verdana, sans-serif; font-size: 14px; line-height: 26px; ">phoneType</span>);
- } catch (IllegalArgumentException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } catch (IllegalAccessException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } catch (InvocationTargetException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } catch (ClassNotFoundException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } catch (SecurityException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } catch (NoSuchMethodException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
通过反射发现sendMultipartTextMessage多了一个phoneType的参数,这个参数就是这只用GMS还是CDMA卡发送的。phoneType获取方法,iTelephony.getActivePhoneType();//1=GSM,2=CDMA