2.3的代码里用TelephonyManager.getSubscriptionState(subscriptionId) == TelephonyManager.SUB_ACTIVATED能判断,怎么4.1里用这个代码报错呢,包都导了,不清楚什么原因,有大虾知道吗Android手机卡

解决方案 »

  1.   

    你是在应用层做的么。我以前做voicemail的时候做过这个判断。判断的是SIM卡是不是READYTelephonyManager.getSimState() == TelephonyManager.SIM_STATE_READY
    如果TRUE 就是OK的了
    用的是4.1.2的系统,
    在packages/app/Phone/src/com/android/phone/PhoneApp.java中进行的判断
      

  2.   

    getSubscriptionState 这个函数在4.1里面 被取消了
      

  3.   

    怎么不能引用回复啦,急死人TelephonyManager.getSimState() == TelephonyManager.SIM_STATE_READY
    这个方法不知道怎么判断双卡手机。。没有参数对应哪个卡啊。。我试了下,是默认的检测卡1kkkkiven 还有方法判断吗。
    shen332401890     getSubscriptionState 这个函数在4.1里面用什么方法替换了呀 
      

  4.   


    不知道你用的双卡代码有没有改过,用的是什么平台的。MSimTelephonyManager.getSimState(int slotID)  取得指定卡的状态。 这个是高能双卡平台上有的。 我不知道你用的是什么平台的
      

  5.   

    你说的是高通平台吗,我这里两套代码,一个是高通7627a,一个是8625.。。7627是2.3的代码,里面有你说的TelephonyManager.getSimState(int slotID) 方法,里面带int参数。。可是8625里面这个方法,里面没有参数,8625是4.1的、、应该没有改过吧我看了下TelephonyManager这个类,里面的方法里面都没有int参数。。是不是不支持双卡手机。。只能判断单卡的
      

  6.   


    高通平台的如果是双卡的话,关于TelephonyManager应该是有两个类的,单卡走的是TelephonyManager  双卡走的是MSimTelephonyManager  , 双卡的类里有这个方法  我的也是8625啊
      

  7.   

    OK了,谢谢兄弟啦,在MSimTelephonyManager里有、、之前一直做的7627的,,一直纠结在TelephonyManager这个类、、、  已经试了,可以用,再次感谢
      

  8.   

    我发现蛮多双卡手机的功能,在单卡手机上就出问题了。。应该大部分都是因为他们用的类不一样吧,就像MSimTelephonyManager和TelephonyManager这种情况应该还有别的类吧