我有一个双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>
答案 0 :(得分:1)
PhoneStateListener
有另一个构造函数PhoneStateListener(Integer subId)
,您可以在其中将sim订阅ID传递给构造函数,它将按原样执行其余任务。
答案 1 :(得分:0)
TelephoneManager的实例与特定的SIM(subscriptionId)相关联。使用TelephonyManager.createForSubscription获取所需SIM卡插槽的实例。