12

Android 5.0을 사용하고 있습니다. 이 버전은 신뢰할 수있는 장치에 연결하여 암호/패턴의 잠금을 해제 할 수있는 SmartLock 기능을 제공합니다. 신뢰할 수있는 장치로 등록 된 블루투스 저에너지 (BLE) 장치가 있습니다. BLE을 사용하여 전화 잠금을 해제 (패턴 모드)하고 싶습니다. BLE과 전화가 연결되면 그것은 휴대 전화의 잠금을 해제하고 데이터는 이벤트내 응용 프로그램에서 스마트 잠금 API를 사용하여 패턴 모드를 잠금 해제하는 방법은 무엇입니까?

if (BluetoothLeService.ACTION_DATA_AVAILABLE.equals(action)) 
// Calling unlock by the SmartLock API 

SmartLock 함께 일한 사람이 나에게 그것을 할 몇 가지 지침을 제공하십시오로 사용할 수 있습니까? SmartLock API를 찾지 못했습니다. enter image description here

+0

BLE 장치가 스마트 잠금 설정에서 신뢰할 수있는 장치로 추가 된 경우 전화기가 해당 BLE 장치와 연결될 때 자동으로 잠금이 해제됩니다. 당신이 찾고있는 것은 여전히 ​​나에게 불분명하다. 이 점을 자세히 설명하고 내가 틀렸다면 어디든지 고쳐주십시오. –

+0

당신이 옳습니다. 하지만 화면이 한 번 더 있습니다 (스 와이프 화면). 그 때, 화면을 스크롤하여 잠금 해제해야합니다. 나는 이것을 무시하고 싶다. Smartlock에는 그 옵션이 있다고 생각합니다 – Jame

+0

이것을 확인하셨습니까? http : // stackoverflow.co.kr/questions/30246425/수신자 전환 서비스/30365638 # 30365638 –

답변

-1

다소 복잡 할 수 있지만 이미 Google에서는이 용도에 대해 Docs을 제공했습니다.

저장된 자격 증명을 요청하려면 자격 증명 API에 액세스하도록 구성된 GoogleApiClient의 인스턴스를 만들어야합니다.

mCredentialsApiClient = new GoogleApiClient.Builder(this) 
    .addConnectionCallbacks(this) 
    .enableAutoManage(this, this) 
    .addApi(Auth.CREDENTIALS_API) 
    .build(); 

CredentialRequest 개체는 자격 증명을 요청하려는 로그인 시스템을 지정합니다. 암호 기반 로그인에 setPasswordLoginSupported 방법을 사용하고 Google 로그인과 같은 통합 로그인 서비스에 대해 setAccountTypes() 방법을 사용하여 CredentialRequest을 작성하십시오. 당신이 GoogleApiClientCredentialRequest 객체를 생성 한 후

mCredentialRequest = new CredentialRequest.Builder() 
    .setPasswordLoginSupported(true) 
    .setAccountTypes(IdentityProviders.GOOGLE, IdentityProviders.TWITTER) 
    .build(); 

, 그들 앱 저장된 자격 증명을 요청하는 CredentialsApi.request() 메서드에 전달합니다.

Auth.CredentialsApi.request(mCredentialsClient, mCredentialRequest).setResultCallback(
    new ResultCallback<CredentialRequestResult>() { 
     @Override 
     public void onResult(CredentialRequestResult credentialRequestResult) { 
      if (credentialRequestResult.getStatus().isSuccess()) { 
       // See "Handle successful credential requests" 
       onCredentialRetrieved(credentialRequestResult.getCredential()); 
      } else { 
       // See "Handle unsuccessful and incomplete credential requests" 
       resolveResult(credentialRequestResult.getStatus()); 
      } 
     } 
    }); 

자격증 명 요청에 성공하면 결과 자격 증명 개체를 사용하여 앱에 대한 사용자 로그인을 완료합니다. getAccountType() 메서드를 사용하여 검색된 자격 증명의 유형을 결정한 다음 적절한 로그인 프로세스를 완료하십시오.

private void onCredentialRetrieved(Credential credential) { 
    String accountType = credential.getAccountType(); 
    if (accountType == null) { 
     // Sign the user in with information from the Credential. 
     signInWithPassword(credential.getId(), credential.getPassword()); 
    } else if (accountType.equals(IdentityProviders.GOOGLE)) { 
     // The user has previously signed in with Google Sign-In. Silently 
     // sign in the user with the same ID. 
     // See https://developers.google.com/identity/sign-in/android/ 
     GoogleSignInOptions gso = 
       new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN) 
         .requestEmail() 
         .build(); 
     mGoogleApiClient = new GoogleApiClient.Builder(this) 
       .enableAutoManage(this, this) 
       .addApi(Auth.GOOGLE_SIGN_IN_API, gso) 
       .setAccountName(credential.getId()) 
       .build(); 
     OptionalPendingResult<GoogleSignInResult> opr = 
       Auth.GoogleSignInApi.silentSignIn(mGoogleApiClient); 
     // ... 
    } 
} 
+0

이전에이 기능을 사용하고 있습니까? 내가 암호 코드 (암호)와 스마트 장치를 사용하는 스마트 잠금 장치를 혼동했다. – Jame

-1

나는 SmartLock API가 있다고 생각하지 않습니다. Pravin이 의견에서 말했듯이, 스마트 잠금 장치가 연결되면 자동으로 패턴을 비활성화합니다.

나는이 시도하지 않은,하지만 패턴이 해제되면 당신은 (this answer에서) 다음과 잠금 화면을 우회 할 수 있어야한다 :

KeyguardManager keyguardManager = (KeyguardManager) getSystemService(Activity.KEYGUARD_SERVICE); 
KeyguardLock lock = keyguardManager.newKeyguardLock(KEYGUARD_SERVICE); 
lock.disableKeyguard(); 

당신은에 권한을 추가해야 할 것이다 매니페스트 :

<uses-permission android:name="android.permission.DISABLE_KEYGUARD"/> 
+0

이전에 시도했지만 스마트 잠금 장치의 잠금을 해제 할 수 없다. – Jame

1

SmartLock에는 외부 API가 없습니다. 참고로 Google Docs을 확인할 수 있습니다.

Guchub에서 this 샘플을 확인하고 here에서 앱에 스마트 잠금 API를 통합하는 방법에 대한 자습서를 찾을 수 있습니다.

+0

내가 이해하는 경우, 내게주는 스마트 잠금이 내 질문에 스마트 잠금과 ​​다릅니다. 전에 링크에서 smartlock을 실행했지만 패턴 모드가 아닌 전자 메일에만 사용됩니다. – Jame

+0

@ user8430 그렇습니다. 이 자습서는 Smartlock에 대한 기본적인 아이디어를 제공합니다. 이전 답변과 마찬가지로'KeyguardManager'를 사용하여 기기 잠금을 해제 할 수 있습니다. – AlphaQ

+0

이전에 시도하지 않았다고 생각합니다. 실험 전에 대답을하십시오. – Jame

관련 문제