没有为sim插槽2调用phonestatelistener

时间:2014-07-29 07:11:17

标签: android listener state phone-call dual-sim

我有一个双SIM卡(插槽0和插槽1)电话。 我的服务中有phonestatelistener。此侦听器仅在收到回调时才会收到回调 SIM卡槽0中的SIM接收呼叫。当a时,这个监听器没有得到回调 在SIM卡插槽1中拨打SIM卡。

我已经交换了SIM卡,并确认无论SIM卡的电话暂停者是否仅在SIM卡插槽0中收到SIM卡的回叫。

我无法'了解这个问题。

请让我知道可能是什么问题

Phone model samsung galaxy s duos 2 (GT-S7562) OS jelly bean 4.2.2

Homeservice.java

public class Homeservice extends Service{


   TelephonyManager telephonyManager;  
   PhoneStateListener listener;



    @Override
    public void onCreate() {


         // Get the telephony manager    
         telephonyManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);

         // Create a new PhoneStateListener    
         listener = new PhoneStateListener() {      

         @Override      
         public void onCallStateChanged(int state, String incomingNumber) { 


             switch (state) {
                    case TelephonyManager.CALL_STATE_IDLE:
                        //finish something
                            break;
                    case TelephonyManager.CALL_STATE_OFFHOOK:
                        //do somethings
                        break; 
                    case TelephonyManager.CALL_STATE_RINGING: 
                        break;
                        } 
                    }
                };


                // Register the listener wit the telephony manager              
                telephonyManager.listen(listener, PhoneStateListener.LISTEN_CALL_STATE);




    }




    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        // TODO Auto-generated method stub

        return START_STICKY;



    }


    @Override
    public void onDestroy() {

        super.onDestroy();
    }

    @Override
    public IBinder onBind(Intent arg0) {
        // TODO Auto-generated method stub
        return null;
    }




}

的Manifest.xml

<service
        android:name="com.kabil.homeservice"
        >
   </service>

2 个答案:

答案 0 :(得分:1)

PhoneStateListener有另一个构造函数PhoneStateListener(Integer subId),您可以在其中将sim订阅ID传递给构造函数,它将按原样执行其余任务。

答案 1 :(得分:0)

TelephoneManager的实例与特定的SIM(subscriptionId)相关联。使用TelephonyManager.createForSubscription获取所需SIM卡插槽的实例。