2011-11-30 2 views
2

이것은 첫 번째 질문입니다! 안드로이드의 표준 설정, 특히 SIM 기능에 액세스하는 방법을 알고 싶습니다. 부팅 할 때 삼성 전자 i-9000에서 몇 초 동안 만 PIN 코드를 입력 할 수있는 창을 표시 한 다음 사라집니다. 따라서 표준 창을 실행하여 PIN 코드를 삽입하는 홈 화면 위젯을 직접 개발하고 싶습니다. , 그러나 나는 그것을 어떻게 할 수 있는지 모른다.표준 Android 설정에 액세스 : SIM 카드의 PIN 코드

또는 어떻게든지이

가 대단히 감사합니다 ... 그 윈도우의 화면 제한 시간을 변경합니다!

답변

1

Android에서 TelephonyManager를 사용합니다.
이 클래스를 직접 인스턴스화하지 마십시오. 대신, 당신은

TelephonyManager manager = (TelephonyManager) Context.getSystemService(Context.TELEPHONY_SERVICE); 
int state = manager.getSimState(); 
if(state == TelephonyManager.SIM_STATE_PIN_REQUIRED || state == TelephonyManager.SIM_STATE_PUK_REQUIRED) 
{ 
     //PIN/PUK is required 
} 

이 당신을 도움이 될 수 Context.getSystemService (Context.TELEPHONY_SERVICE)를 통해 인스턴스에 대한 참조 ...

+0

답변 해 주셔서 감사합니다.하지만 문제는 또 다른 문제입니다. 다른 해결책으로 귀하의 솔루션을 보았습니다. 그러나이 솔루션은 PIN이 필요한 경우에만 알려주지 만 설정 방법은 알려주지 않습니다! :) – Giacomo

0

는 2.3 버전 이상의 안드로이드에서 PIN을 적용하려는 경우를 검색 당신은 아마 수 사용 내부 클래스, 당신이 여기에서 찾을 수 있습니다 그것을 사용하는 방법을 가장 좋은 튜토리얼되지 않습니다

TelephonyManager tm = (TelephonyManager) getSystemService(TELEPHONY_SERVICE); 
    Class c = Class.forName(tm.getClass().getName()); 
    Method m = c.getDeclaredMethod("getITelephony"); 
    m.setAccessible(true); 
    ITelephony telephonyService; 
    telephonyService = (ITelephony)m.invoke(tm); 

    // Supply SIM PIN 
    SharedPreferences prefs = getSharedPreferences(OrangeSignalMeterLoop.class.getCanonicalName()+"x", Context.MODE_PRIVATE); 
    if(prefs.getBoolean(context.getString(R.string.whetherAutoCompletePIN), false)) { 
     String sim_pin = prefs.getString(context.getString(R.string.pinCode), "1111"); 
     telephonyService.supplyPin(sim_pin); 
    } 

: 당신은 당신이 코드를 사용해야 두 경우 모두, 시스템 응용 프로그램과 같이 응용 프로그램을 설치해야합니다 : https://devmaze.wordpress.com/2011/01/18/using-com-android-internal-part-1-introduction/

관련 문제