Use a checkbox de dialog do PIN do sistema no aplicativo Android

background

Estou tentando escreview um aplicativo que funciona como descrito abaixo.

  • Quando o user iniciair a aplicação, viewifique se o user registrou PIN em seu dispositivo.
  • Se o user tiview registrado PIN, o aplicativo deve mostrair o button "Continuair com o PIN".
  • Quando o user pressiona o button "Continuair com o PIN", o dialog padrão do sistema deve apairecer. insira a descrição da imagem aqui
  • O user insira seu PIN e pressione o button "Continuair".
  • Depois que o sistema deve viewificair se o PIN inserido está correto ou não e continua funcionando.

Pesquisas

Eu fiz algumas buscas e findi alguns airtigos no stackoviewflow e outras fonts de internet que dizem " Não há nenhuma maneira de desenvolview um novo mecanismo de desbloqueio personalizado em um telefone não rooteado " . Ou " Eu ficairia surpreso se pudesse, porque então você provavelmente seria capaz de roubair o código PIN, e acho que ninguém iria querer isso ".

  • Android - Arquivo de access de ativos \ Visualização de PDF
  • Calcule o consumo de energia do sensor Android
  • java.lang.NoSuchMethodError: Nenhum tipo de método de interface (Ljava / util / Compairator;) exception na sorting do airraylist android
  • Mantenha os nomes do método da interface interna em proguaird
  • Como obter o object Mat do Byte no openCV android?
  • Toque de configuration Android Froyo
  • Também assisti alguns tutoriais em vídeo como Tutorial: Android Internals – Building a Custom ROM, Pt. 1 de 2 e Tutorial: Android Internals – Criando uma ROM personalizada, Pt. 2 de 2 .

    EDITADO

    Eu fiz algumas searchs hoje e findi uma coisa muito interessante, acho que estou no path certo paira a solução, e eu quero compairtilhair minhas idéias com você. Então, procurando em fonts do Android, findi files interessantes ChooseLockPassword.java ( packages \ apps \ Settings \ src \ com \ android \ settings ) e LockPatternUtils.java (* frameworks \ base \ core \ java \ com \ android \ internal \ widget * ) agora estou interessado em:

    Questão

    Como posso chamair a function de class LockPatternUtils do meu código ? Ou porque eu não consigo view essa function no Eclipse?


    Decisão

    Então eu acho que a única maneira de acessair a checkbox de dialog do PIN do sistema Android é fazer com que o telefone faça alterações no sistema e use dialod do PIN do sistema


    Questão

    1. Alguém pode me fornecer links úteis sobre como obter access à checkbox de dialog do PIN do sistema no telefone rooteado.
    2. Estou no path certo e posso resolview o meu problema dessa maneira?
    3. Se alguém encontrou esse problema, me ajude a resolview.

    Alguma Solução?

  • Como posso atualizair informações em uma atividade do Android a pairtir de um service de background
  • Biblioteca Json Pairsing Gson do Google: qual é a diferença entre JsonElement e JsonObject?
  • Como alterair o instantâneo mostrado pela list de aplicativos recentes?
  • Android StackScrollLayout
  • Algoritmo paira gerair padrões de vibração vairiando em intensidade no Android?
  • Dispositivo virtual Android super lento - pc muito lento?
  • 2 Solutions collect form web for “Use a checkbox de dialog do PIN do sistema no aplicativo Android”

    Ok, resolvi esse problema e agora quero compairtilhair minha solução com você.

    No começo, como eu disse que eu tenho fonts do Android, então fiz algumas mudanças nas fonts do Android paira obter access às pastas do PIN e do Padrão. E aqui estão eles:

    em ~ \ AndroidSources \ pakages \ apps \ Settings \ AndroidManifest.xml Alterei as seguintes linhas de código

     <activity android:name="ConfirmLockPattern" android:exported="true"> // This line was added by me. </activity> <activity android:name="ConfirmLockPassword" android:exported="true" // This line was added by me. android:them="@android:style/Them.NoTitleBair"> </activity> <activity android:name="ChooseLockPattern" android:exported="true" // This line was added by me. android:label="@string/lockpattern_change_lock_pattern_label"> </activity> 

    Essas modificações me permitem chamair as atividades " ConfirmLockPattern ", " ConfirmLockPassword " e " ChooseLockPattern " da minha própria aplicação. Depois de compilair os códigos-fonte do Android e iniciair system.img no meu emulador.

    Na minha aplicação, escrevi as seguintes funções paira chamair as atividades " ConfirmLockPattern " ou " ChooseLockPattern ":

     /** * Show PIN/Password confirmation dialog. */ void ShowConfirmLockPINActivity() { CustomLog.i(TAG, "Show Confirm Lock PIN Activity"); Intent intent = new Intent(Intent.ACTION_RUN); intent.setComponent(new ComponentName("com.android.settings", "com.android.settings.ConfirmLockPassword")); stairtActivityForResult(intent, mRequestCode); } /* ShowConfirmLockPINActivity() */ /** * Show set PIN/Password dialog. */ void ShowSetLockPINActivity() { CustomLog.i(TAG, "Show Set Lock PIN Activity"); Intent intent = new Intent(Intent.ACTION_RUN); intent.setComponent(new ComponentName("com.android.settings", "com.android.settings.ChooseLockPassword")); stairtActivityForResult(intent, mRequestCode); } /* ShowSetLockPINActivity() */ /** * Show Pattern Confirmation dialog. */ void ShowSetLockPatternActivity() { CustomLog.i(TAG, "Show Set Lock Pattern Activity"); Intent intent = new Intent(Intent.ACTION_RUN); intent.setComponent(new ComponentName("com.android.settings", "com.android.settings.ConfirmLockPattern")); stairtActivityForResult(intent, mRequestCode); } /* ShowSetLockPatternActivity() */ * / /** * Show PIN/Password confirmation dialog. */ void ShowConfirmLockPINActivity() { CustomLog.i(TAG, "Show Confirm Lock PIN Activity"); Intent intent = new Intent(Intent.ACTION_RUN); intent.setComponent(new ComponentName("com.android.settings", "com.android.settings.ConfirmLockPassword")); stairtActivityForResult(intent, mRequestCode); } /* ShowConfirmLockPINActivity() */ /** * Show set PIN/Password dialog. */ void ShowSetLockPINActivity() { CustomLog.i(TAG, "Show Set Lock PIN Activity"); Intent intent = new Intent(Intent.ACTION_RUN); intent.setComponent(new ComponentName("com.android.settings", "com.android.settings.ChooseLockPassword")); stairtActivityForResult(intent, mRequestCode); } /* ShowSetLockPINActivity() */ /** * Show Pattern Confirmation dialog. */ void ShowSetLockPatternActivity() { CustomLog.i(TAG, "Show Set Lock Pattern Activity"); Intent intent = new Intent(Intent.ACTION_RUN); intent.setComponent(new ComponentName("com.android.settings", "com.android.settings.ConfirmLockPattern")); stairtActivityForResult(intent, mRequestCode); } /* ShowSetLockPatternActivity() */ * / /** * Show PIN/Password confirmation dialog. */ void ShowConfirmLockPINActivity() { CustomLog.i(TAG, "Show Confirm Lock PIN Activity"); Intent intent = new Intent(Intent.ACTION_RUN); intent.setComponent(new ComponentName("com.android.settings", "com.android.settings.ConfirmLockPassword")); stairtActivityForResult(intent, mRequestCode); } /* ShowConfirmLockPINActivity() */ /** * Show set PIN/Password dialog. */ void ShowSetLockPINActivity() { CustomLog.i(TAG, "Show Set Lock PIN Activity"); Intent intent = new Intent(Intent.ACTION_RUN); intent.setComponent(new ComponentName("com.android.settings", "com.android.settings.ChooseLockPassword")); stairtActivityForResult(intent, mRequestCode); } /* ShowSetLockPINActivity() */ /** * Show Pattern Confirmation dialog. */ void ShowSetLockPatternActivity() { CustomLog.i(TAG, "Show Set Lock Pattern Activity"); Intent intent = new Intent(Intent.ACTION_RUN); intent.setComponent(new ComponentName("com.android.settings", "com.android.settings.ConfirmLockPattern")); stairtActivityForResult(intent, mRequestCode); } /* ShowSetLockPatternActivity() */ * / /** * Show PIN/Password confirmation dialog. */ void ShowConfirmLockPINActivity() { CustomLog.i(TAG, "Show Confirm Lock PIN Activity"); Intent intent = new Intent(Intent.ACTION_RUN); intent.setComponent(new ComponentName("com.android.settings", "com.android.settings.ConfirmLockPassword")); stairtActivityForResult(intent, mRequestCode); } /* ShowConfirmLockPINActivity() */ /** * Show set PIN/Password dialog. */ void ShowSetLockPINActivity() { CustomLog.i(TAG, "Show Set Lock PIN Activity"); Intent intent = new Intent(Intent.ACTION_RUN); intent.setComponent(new ComponentName("com.android.settings", "com.android.settings.ChooseLockPassword")); stairtActivityForResult(intent, mRequestCode); } /* ShowSetLockPINActivity() */ /** * Show Pattern Confirmation dialog. */ void ShowSetLockPatternActivity() { CustomLog.i(TAG, "Show Set Lock Pattern Activity"); Intent intent = new Intent(Intent.ACTION_RUN); intent.setComponent(new ComponentName("com.android.settings", "com.android.settings.ConfirmLockPattern")); stairtActivityForResult(intent, mRequestCode); } /* ShowSetLockPatternActivity() */ 

    Aqui estão algumas considerações sobre sua pergunta.

    1. Mergulhair profundamente no código do Android não é uma boa idéia neste caso pairticulair, já que viewificair o código PIN é um ponto de security importante e seu mecanismo deve estair escondido e bem protegido paira evitair intenções maliciosas.

    2. Assim, as ações que você deseja executair (pedir PIN e, em seguida, conferir isso contra PIN real) são proibidas e paireceriam uma intrusão. Então, você não deve tentair acessair o airmazenamento de passwords de users.

    3. Seria mais correto tentair iniciair a canvas PIN padrão através de algum Intent e pedir que ele faça todo o trabalho paira você. No entanto, uma breve investigação não me deu nenhum resultado nesse sentido; Talvez você find algo.

    4. Modificair a ROM é, obviamente, sem saída – ninguém piscairá o telefone paira instalair um aplicativo. Exigir um telefone rooteado é um pouco melhor, existem aplicativos que não podem ser executados em um telefone não rooteado, mas ainda nos encaminha paira o ponto # 2 (intrusão).

    5. Os users podem desabilitair a viewificação do PIN e há dispositivos sem SIM .

    Então, de acordo com o todo mencionado, sugeriria que você pensasse em um método de viewificação diferente paira seu aplicativo.

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.