2014-01-05 2 views
1

내 앱에 SIM 및 운영자의 세부 정보를 표시하는 듀얼 SIM 모바일이 있습니다. 그러나 (분명히) 그것은 SIM1이 아닌 SIM2의 세부 사항을 탐지하여 보여줍니다. SIM2 세부 정보에 액세스 할 수있는 방법이 있습니까?듀얼 SIM 모바일에서 현재/기본 SIM을 감지합니다.

기본적으로 Android는 이중 SIM을 지원하지 않으며 휴대 전화 제조업체가 SIM (SIM1 또는 SIM2 중 사용자 선택)을 기본 (전화를 걸기 위해)으로 사용하는 방식으로 휴대 전화 제조업체에서 조정할 수 있습니다. 다른 SIM은 대기 상태입니다 (통화가 수신되면 시작됩니다). 기본 SIM을 감지 할 수있는 방법이 있어야합니다.

나는 두 SIM 정보를 동시에 가져 오는 것에는별로 관심이 없다. 전화를 걸기 위해 사용자가 기본으로 선택한 SIM의 세부 정보 만 필요합니다.

모든 링크/작동 예제/제안, 모든 종류의 도움을 주시면 감사하겠습니다.

감사

답변

1

단계 # 1 :이 모든 안드로이드 장치 제조업체 1+ 듀얼 SIM 장치 목록을 확인합니다.

2 단계 : 해당 제조업체에 문의하여 질문하십시오.

당신이 썼던 것처럼 :

나는 안드로이드가 모바일 제조 업체 비틀기 기본으로하고 있다는 듀얼 SIM을 지원하지 않는 것을 알고 그것을

특정 장치 제조업체가 그것을 조정할해야한다는 요구 사항은 없습니다

다른 제조업체와 동일한 방식으로, 특정 장치 제조업체가 앱 개발자가 볼 수있는 방식으로이를 조정해야한다는 요구 사항은 없습니다. 따라서 앱 지원이 실제로 가능하다면 원하는 정보를 얻는 유일한 방법은 제조업체에 문의하는 것입니다.

2

콘솔에 SIM1 유형의 상태를 확인하려면 :

mCallState 수신/발신에 변경 telephony.registry2 ADB 쉘 dumpsys : ADB 쉘 dumpsys 콘솔에서 SIM2 유형의 상태를 확인하려면

을 telephony.registry 요구. 그렙의 GSM 당신은 자바 응용 프로그램에서 dumpsys를 호출 할 때

, 당신이 android.permission.DUMP 필요 | ADB 쉘 getprop : 그것은 당신이 SIM 카드가 몇 가지 추가 정보를 보려면 전화

에 사용 알 수 있도록 허용 명백한. 그러나 일부 새로운 장치에서는 작동하지 않습니다. 일부 휴대 전화에

알고이 코드를 작업 할 수 default sim card :

Object tm = getSystemService(Context.TELEPHONY_SERVICE); 
Method method_getDefaultSim;  
int defaultSim = -1; 
try { 
    method_getDefaultSim = tm.getClass().getDeclaredMethod("getDefaultSim"); 
    method_getDefaultSim.setAccessible(true); 
    defaultSim = (Integer) method_getDefaultSim.invoke(tm); 
} catch (Exception e) { 
    // TODO Auto-generated catch block 
    e.printStackTrace(); 
} 

Method method_getSmsDefaultSim; 
int smsDefaultSim = -1; 
try { 
    method_getSmsDefaultSim = tm.getClass().getDeclaredMethod("getSmsDefaultSim"); 
    smsDefaultSim = (Integer) method_getSmsDefaultSim.invoke(tm); 
} catch (Exception e) { 
    // TODO Auto-generated catch block 
    e.printStackTrace(); 
} 
+0

받고 '0'과 SMS '1'항상이 칼 SIM을 사용하여. 심지어 sim을 선택하거나 'Ask first' –

관련 문제