2016-06-04 9 views
4

내 애플리케이션의 특정 기능에 액세스하기 위해 설정된 패턴 (패스 코드, 지문 등)을 사용하여 휴대 전화에서 잠금 해제 작업을 수행하도록 사용자에게 요청할 수있는 방법이 있습니까?잠금 해제 패턴 요청 - Android

예를 들어, iOS에서는 QR 코드를 기반으로 OTP를 생성합니다. 생성 된 OTP 토큰을 표시하기 전에 사용자에게 잠금 해제 핀을 요청할 수 있습니다. 내 안드로이드 응용 프로그램에 대해 동일한 싶어요. 이렇게하면 응용 프로그램의 오용을 방지 할 수 있습니다.

+0

당신은 백 포트의 해결책을 찾았나요? – Beloo

+0

@Beloo : 아니, Lollipop 아래에 API에 대한 항목을 찾지 못했습니다. –

답변

3

KeyguardManager 클래스로 해당 의도를 만들려면 API21부터 사용 가능한 createConfirmDeviceCredentialIntent 방법을 사용하고 startActivityForResult(intent) 방법으로 활동에서 호출해야합니다. 활동에

는 :

private static final int CREDENTIALS_RESULT = 4342; //just make sure it's unique within your activity. 

void checkCredentials() { 
    KeyguardManager keyguardManager = this.getSystemService(Context.KEYGUARD_SERVICE); 
    Intent credentialsIntent = keyguardManager.createConfirmDeviceCredentialIntent("Password required", "please enter your pattern to receive your token"); 
    if (credentialsIntent != null) { 
    startActivityForResult(credentialsIntent, CREDENTIALS_RESULT); 
    } else { 
    //no password needed 
    doYourThing(); 
    } 
} 

@Override 
public void onActivityResult(int requestCode, int resultCode, Bundle data) { 
    if (requestCode == CREDENTIALS_RESULT) { 
    if(resultCode == RESULT_OK) { 
     //hoorray! 
     doYourThing(); 
    } else { 
     //uh-oh 
     showSomeError(); 
    } 
    } 
} 
+0

고마워요, 이것 좀보세요. API 레벨 16에서 호환되는 솔루션을 찾고 있습니다. –