首页
社区
课程
招聘
[求助]想问下展讯的双卡双待发送信息怎么做,顺便问下我这样的思路可不可以
发表于: 2015-3-7 12:22 5711

[求助]想问下展讯的双卡双待发送信息怎么做,顺便问下我这样的思路可不可以

2015-3-7 12:22
5711
如题喽,这个问题困扰了我一个多星期了,除了想求助个方法之外,还想问下,我通过反射得到一个com.android.internal.telephony.PhoneFactory的类,然后通过这个类得到方法         Method getcdmaphoneMethod=factoryClass.getMethod("getCdmaPhone", new Class[]{ });
         Method getgsmphonemMethod=factoryClass.getMethod("getGsmPhone", new Class[]{ });
通过这两个方法得到两个ANODRI.TELEPHONY.PHONE的对像,然后得到发信息的方法,当然发信息的类也已经获得 divideMessage=smsManagerClass.getMethod("divideMessage", divideMessagePamas);
         sendText=smsManagerClass.getMethod("sendMultipartTextMessage", sendTextPamas);
         Object object=factoryClass.newInstance();
最后通过这两个对像调用发信息的方法,请问这样的思路可以吗?

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 2
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
呃,在线等了好久啊
2015-3-7 16:14
0
雪    币: 2
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
呃,我把代码发上来,我不懂为什么object对像会是空的。try {

         Class<?> smsManagerClass = null;  
         Class<?> factoryClass=null;
         @SuppressWarnings("rawtypes")
                Class[] divideMessagePamas = { String.class };  
         @SuppressWarnings("rawtypes")
                Class[] sendTextPamas = { String.class,String.class, ArrayList.class,ArrayList.class,ArrayList.class };  
          Method divideMessage = null;  
         Method sendText = null;  
         factoryClass= Class.forName("com.android.internal.telephony.PhoneFactory");
         smsManagerClass=Class.forName("android.telephony.SmsManager");
         //Method[] methods=smsManagerClass.getDeclaredMethods();
        //
        // Method method = smsManagerClass.getMethod("getDefault", new Class[]{});
        /* Object smsManager = method.invoke(smsManagerClass, new Object[]{});  
         Method isMultiSim=smsManagerClass.getMethod("sendMultipartTextMessageWithEncodingType", sendTextPamas);
        divideMessage=smsManagerClass.getMethod("divideMessage",divideMessagePamas);  
        sendText =smsManagerClass.getMethod("sendTextMessage",sendTextPamas);  
        ArrayList<String> magArray = (ArrayList<String>)divideMessage.invoke(smsManager, content);  
         } */
         Method[] methods=factoryClass.getDeclaredMethods();
         Method getcdmaphoneMethod=factoryClass.getMethod("getCdmaPhone", new Class[]{ });
         Method getgsmphonemMethod=factoryClass.getMethod("getGsmPhone", new Class[]{ });
         divideMessage=smsManagerClass.getMethod("divideMessage", divideMessagePamas);
         sendText=smsManagerClass.getMethod("sendMultipartTextMessage", sendTextPamas);
         Object object=factoryClass.newInstance();
         if(phoneType==1)
         {
        Object cdmaphoneObject=getcdmaphoneMethod.invoke(object, new Object[]{});
         @SuppressWarnings("unchecked")
                ArrayList<String> magArray = (ArrayList<String>)divideMessage.invoke(cdmaphoneObject, content);
         sendText.invoke(cdmaphoneObject,phone,"",magArray,null,null);
         
                }
         else if(phoneType==2)
         {
                 Object gsmphoneObject=getgsmphonemMethod.invoke(null, new Object[]{});
                 ArrayList<String> magArray = (ArrayList<String>)divideMessage.invoke(gsmphoneObject, content);
                 sendText.invoke(gsmphoneObject,phone,"",magArray,null,null);
         }
         else {
                       
                }
                }
                catch(IllegalArgumentException 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();
         } catch (IllegalAccessException e) {
                        // TODO 自动生成的 catch 块
                        e.printStackTrace();
                } catch (InvocationTargetException e) {
                        // TODO 自动生成的 catch 块
                        e.printStackTrace();
                } catch (InstantiationException e) {
                        // TODO 自动生成的 catch 块
                        e.printStackTrace();
                }
2015-3-7 19:56
0
雪    币: 2
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
嗯,懂了, 是不可以的,因为SENDMULTIPARTMESSAGE是SMSMANAGER的对像,不是PHONE的对像
2015-3-7 22:13
0
雪    币: 294
活跃值: (119)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
5
LZ开启自问自答模式~
2015-3-7 22:14
0
雪    币: 2
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
没办法啊,没人回答,自己又在那蛋疼的调试,发现了新的问题就来说明下。
2015-3-7 22:18
0
游客
登录 | 注册 方可回帖
返回
//