2015-08-16 6 views
1

Я хочу, чтобы пользовательский тип был паролем и нажмите кнопку «ОК», а затем будет проверяться, действительно ли это пароль устройства. если это так, приложение будет близко, и если не всплывает, попробуйте еще раз.Всплывающее подтверждение собственного пароля android

new MaterialDialog.Builder(Finished.this) 
        .title("To exit enter your phone password") 
        .inputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD) 
        .positiveText(R.string.ok) 
        .negativeText(R.string.cancle) 
        .input(R.string.input_hint, Integer.parseInt(""), new MaterialDialog.InputCallback() { 
         @Override 
         public void onInput(MaterialDialog dialog, CharSequence input) { 
          // Do something 
         } 
        }) 
        .callback(new MaterialDialog.ButtonCallback() { 
         @Override 
         public void onPositive(MaterialDialog dialog) { 
          onBackPressed(); 
         } 
        }) 
        .show(); 

ответ

2

Для очевидных причин безопасности обычным приложениям не разрешено проверять значения по отношению к паролю устройства.

В уровне API 21 существует новый метод KeyguardManager.createConfirmDeviceCredentialIntent, который возвращает вам намерение. Затем вы можете позвонить startActivityForResult с этим намерением, чтобы подтвердить пароль устройства.

Добавлено в уровне API 21.

Получить намерение предложить пользователю подтвердить учетные данные (контактный, шаблон или пароль) для текущего пользователя устройства. Ожидается, что вызывающий абонент начнет эту операцию, используя startActivityForResult (Intent, int) и проверьте для RESULT_OK, если пользователь успешно выполнил вызов.

Возвращает намерение запуска активности или null, если нет пароля не требуется.

class MyActivity extends Activity { 

    public static final int REQUEST_PWD_PROMPT = 1; 

    void promptForDevicePassword() { 
    // get an instance of the KeyguardManager 
    KeyguardManager km = (KeyguardManager) this.getSystemService(Context.KEYGUARD_SERVICE); 
    // get the intent to prompt the user 
    Intent intent = km.createConfirmDeviceCredentialIntent("My App Name", "Enter your password to exit this App."); 

    // launch the intent 
    startActivityForResult(intent, REQUEST_PWD_PROMPT); 
    } 

    @Override 
    protected void onActivityResult (int requestCode, int resultCode, Intent data){ 
     // see if this is being called from our password request..? 
     if (requestCode == REQUEST_PWD_PROMPT) { 
      // ..it is. Did the user get the password right? 
      if (resultCode == RESULT_OK) { 
      // they got it right 
      } else { 
      // they got it wrong/cancelled 
      } 
     } 
    } 


} 
+0

ЕКС вы мне Псевдо код? или, например, код? – gal

+0

I cent использовать уровень 22 api Я использую 15 – gal

+0

cen кто-то hlep? – gal

Смежные вопросы