A senha padrão para o dispositivo é uma das necessidades para manter nosso dispositivo privado e protegido. Hoje em dia, na maioria dos aplicativos, vemos essa senha aplicada em muitos aplicativos, como fundos mútuos ou aplicativos do mercado de ações, para manter nossos dados financeiros privados. Neste artigo, veremos como implementar senhas padrão em nosso aplicativo Android. Um exemplo de GIF é fornecido abaixo para se ter uma ideia sobre o que faremos neste artigo. Observe que vamos implementar este projeto usando a   linguagem Java

Gerar senha padrão no GIF de amostra do Android

Aplicações de senha padrão

  • Use para proteger nossos detalhes privados e informações pessoais em um aplicativo Android.
  • Torna-se muito conveniente usar senhas padrão em vez de alfinetes.
  • Ele funciona como um bloqueio de aplicativo para nosso aplicativo em nosso dispositivo.

Atributos da senha padrão

AtributosDescrição
layout_widthPara exibir a largura dos pontos.
layout_heightPara exibir a altura dos pontos.
correctStateColorPara exibir a cor dos pontos.

Implementação passo a passo

Etapa 1: Criar um novo projeto

Para criar um novo projeto no Android Studio, consulte Como criar / iniciar um novo projeto no Android Studio . Observe que selecione Java como a linguagem de programação.

Etapa 2: adicionar dependência da biblioteca de senha padrão no arquivo build.gradle

Em seguida, navegue até os scripts do gradle e, em seguida, para o nível build.gradle (módulo) . Adicione a linha abaixo no arquivo build.gradle na seção de dependências.

implementação 'com.andrognito.patternlockview: patternlockview: 1.0.0'

agora clique em Sincronizar para sincronizar todos os seus arquivos em build.gradle().

Etapa 3: Crie uma tela de carregamento em seu arquivo activity_main.xml

Navegue até app> res> layout para abrir o arquivo activity_main.xml . Abaixo está o código para o arquivo activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">
  
    <!--Text view for giving loading-->
    <TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:text="Loading...." />
      
</RelativeLayout>

Etapa 4: Trabalhando com o arquivo MainActivity.java

Vá para o arquivo MainActivity.java e consulte o código a seguir. Abaixo está o código para o arquivo MainActivity.java . Os comentários são adicionados dentro do código para entender o código em mais detalhes.

import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.os.Handler;
  
import androidx.appcompat.app.AppCompatActivity;
  
public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
  
        Handler handler = new Handler();
        handler.postDelayed(new Runnable() {
            @Override
            public void run() {
                // loading is given
                SharedPreferences sharedPreferences = getSharedPreferences("PREFS", 0);
                String password = sharedPreferences.getString("password", "0");
                if (password.equals("0")) {
                    // Intent to navigate to Create Password Screen
                    Intent intent = new Intent(getApplicationContext(), CreatePasswordActivity.class);
                    startActivity(intent);
                    finish();
                } else {
                    // Intent to navigate to Input Password Screen
                    Intent intent = new Intent(getApplicationContext(), InputPasswordActivity.class);
                    startActivity(intent);
                    finish();
                }
            }
        }, 2000);
    }
}

Etapa 5: crie uma nova atividade vazia e nomeie-a como CreatePasswordActivity

Vá para o aplicativo> java> Nome do pacote do seu aplicativo> clique com o botão direito do mouse> Novo> Atividade> Atividade vazia e nomeie a atividade como CreatePasswordActivity .

Trabalhando com o arquivo activity_create_password.xml:

Acesse o arquivo activity_create_password.xml e consulte o código a seguir. Abaixo está o código para o arquivo activity_create_password.xml . Neste arquivo, você mostrará pontos para criar uma senha padrão conforme fornecido abaixo.

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
  
    <!--Dots to create pattern pass word-->
    <com.andrognito.patternlockview.PatternLockView
        android:id="@+id/pattern_lock_view"
        android:layout_width="300dp"
        android:layout_height="300dp"
        android:layout_centerInParent="true"
        app:correctStateColor="@color/purple_200"
        app:normalStateColor="@color/purple_200"
        app:wrongStateColor="@color/teal_700" />
  
    <!--Text View to display title-->
    <TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="10dp"
        android:text="Create Password"
        android:textSize="30dp"
        android:textStyle="bold" />
  
</RelativeLayout>

Trabalhando com o arquivo CreatePasswordActivity.java:

Acesse o arquivo CreatePasswordActivity.java e consulte o código a seguir. Abaixo está o código para o arquivo CreatePasswordActivity.java . Os comentários são adicionados dentro do código para entender o código em mais detalhes.

import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
  
import androidx.appcompat.app.AppCompatActivity;
  
import com.andrognito.patternlockview.PatternLockView;
import com.andrognito.patternlockview.listener.PatternLockViewListener;
import com.andrognito.patternlockview.utils.PatternLockUtils;
  
import java.util.List;
  
public class CreatePasswordActivity extends AppCompatActivity {
  
    // Initialize pattern lock view
    PatternLockView mPatternLockView;
  
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_create_password);
  
        mPatternLockView = (PatternLockView) findViewById(R.id.pattern_lock_view);
        mPatternLockView.addPatternLockListener(new PatternLockViewListener() {
            @Override
            public void onStarted() {
  
            }
  
            @Override
            public void onProgress(List<PatternLockView.Dot> progressPattern) {
  
            }
  
            @Override
            public void onComplete(List<PatternLockView.Dot> pattern) {
                // Shared Preferences to save state
                SharedPreferences sharedPreferences = getSharedPreferences("PREFS", 0);
                SharedPreferences.Editor editor = sharedPreferences.edit();
                editor.putString("password", PatternLockUtils.patternToString(mPatternLockView, pattern));
                editor.apply();
                  
                // Intent to navigate to home screen when password added is true
                Intent intent = new Intent(getApplicationContext(), ProgramActivity.class);
                startActivity(intent);
                finish();
            }
            @Override
            public void onCleared() {
  
            }
        });
    }
}

Etapa 6: crie da mesma forma uma nova atividade vazia e nomeie-a como InputPasswordActivity

Vá para o aplicativo> java> Nome do pacote do seu aplicativo> clique com o botão direito do mouse> Novo> Atividade> Atividade vazia e nomeie a atividade como InputPasswordActivity .

Trabalhando com o arquivo activity_Input_Password.xml:

Acesse o arquivo activity_Input_Password.xml e consulte o código a seguir. Abaixo está o código para o arquivo activity_Input_Password.xml . Neste arquivo, você desenhará seu padrão para navegar até a tela inicial quando o usuário abrir o aplicativo pela segunda vez após a instalação.

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
  
    <!--Dots to input password-->
    <com.andrognito.patternlockview.PatternLockView
        android:id="@+id/pattern_lock_view"
        android:layout_width="300dp"
        android:layout_height="300dp"
        android:layout_centerInParent="true"
        app:correctStateColor="@color/purple_200"
        app:normalStateColor="@color/purple_200"
        app:wrongStateColor="@color/teal_700" />
  
    <!--Text View to display title-->
    <TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="10dp"
        android:text="Input Password"
        android:textSize="30dp"
        android:textStyle="bold" />
  
</RelativeLayout>

Trabalhando com o arquivo InputPasswordActivity.java:

Acesse o arquivo InputPasswordActivity.java e consulte o código a seguir. Abaixo está o código para o arquivo InputPasswordActivity.java . Os comentários são adicionados dentro do código para entender o código em mais detalhes.

import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.widget.Toast;
  
import androidx.appcompat.app.AppCompatActivity;
  
import com.andrognito.patternlockview.PatternLockView;
import com.andrognito.patternlockview.listener.PatternLockViewListener;
import com.andrognito.patternlockview.utils.PatternLockUtils;
  
import java.util.List;
  
public class InputPasswordActivity extends AppCompatActivity {
  
    PatternLockView mPatternLockView;
    String password;
  
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_input_password);
          
        // shared preference when user comes second time to the app
        SharedPreferences sharedPreferences = getSharedPreferences("PREFS", 0);
        password = sharedPreferences.getString("password", "0");
          
        mPatternLockView = (PatternLockView) findViewById(R.id.pattern_lock_view);
        mPatternLockView.addPatternLockListener(new PatternLockViewListener() {
            @Override
            public void onStarted() {
  
            }
  
            @Override
            public void onProgress(List<PatternLockView.Dot> progressPattern) {
  
            }
  
            @Override
            public void onComplete(List<PatternLockView.Dot> pattern) {
                // if drawn pattern is equal to created pattern you will navigate to home screen
                if (password.equals(PatternLockUtils.patternToString(mPatternLockView, pattern))) {
                    Intent intent = new Intent(getApplicationContext(), ProgramActivity.class);
                    startActivity(intent);
                    finish();
                } else {
                    // other wise you will get error wrong password
                    Toast.makeText(InputPasswordActivity.this, "Wrong Password", Toast.LENGTH_SHORT).show();
                    mPatternLockView.clearPattern();
                }
            }
  
            @Override
            public void onCleared() {
  
            }
        });
    }
}

Etapa 7: Da mesma forma, crie uma nova atividade vazia e nomeie-a como ProgramActivity

Vá para o aplicativo> java> Nome do pacote do seu aplicativo> clique com o botão direito do mouse> Novo> Atividade> Atividade vazia e nomeie a atividade como ProgramActivity .

Trabalhando com o arquivo activity_program.xml:

Acesse o arquivo activity_program.xml e consulte o código a seguir. Abaixo está o código para o arquivo activity_program.xml . Neste arquivo, criaremos a tela inicial para navegar o usuário até a tela principal. Onde você verá a mensagem de texto.

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
  
    <!--Text Message to display-->
    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:text="Welcome to Geeks to Geeks"
        android:textSize="20dp"
        tools:layout_editor_absoluteX="163dp"
        tools:layout_editor_absoluteY="334dp" />
      
</RelativeLayout>

 Agora clique na opção executar - levará algum tempo para construir o Gradle. Depois disso, você obterá a saída em seu dispositivo conforme mostrado abaixo.

Saída:

Quer um ambiente mais competitivo e acelerado para aprender os fundamentos do Android?
Clique aqui para acessar um guia com curadoria exclusiva de nossos especialistas com o objetivo de torná-lo pronto para a indústria em nenhum momento!