Executando verificação de segurança...
1

Validação de uso aplicativo (IMEI)

Trabalho hoje no desenvolvimento de um aplicativo voltado à manutenção de frota e fazíamos a validação do uso do mesmo pelo IMEI, porém a partir do android 10 o IMEI não está mais acessível.
A solução que utilizamos para esse problema foi deixar digitar o campo IMEI, podendo utilizar o próprio IMEI do aparelho ou uma sequência alfanumérica aleatória, conforme imagem.
Tela de Configuração
O problema nisso é que a configuração, a maioria das vezes, fica na mão do usuário final que não tem tanto conhecimento para realizá-la e gostaríamos de melhorar essa questão.

Um dos nossos colaboradores pesquisou e descobriu na documentação o Android ID, porém ele pode ser alterado em alguns casos.
Documentação Android ID
"O Android ID é gerado com base em uma combinação de informações do dispositivo, incluindo o número de série, o endereço MAC do Wi-Fi e o número de série do dispositivo. No entanto, o Android ID não é garantido para ser exclusivo em todas as situações e em todos os dispositivos, e pode ser redefinido pelo usuário ou pelo fabricante em algumas circunstâncias."

Você, desenvolvedor Android, o que utiliza para validar o uso do aplicativo por parte do usuário?
Aceito idéias.

Carregando publicação patrocinada...
1

Boa tarde, não sei como você está desenvolvendo o seu aplicativo, mas acredito que dê sim pra pegar o IMEI mesmo em versões após o Android 10. Pode estar errado o resultado, mas perguntei no ChatGPT se dava, na verdade escrevi o seguinte:

Poderia demonstrar como obter o IMEI do celular que usa Android 12 para usar em um aplicativo?

A resposta dele foi:

Sim, claro! O IMEI é um número de identificação único que é atribuído a cada dispositivo móvel. No Android 12, você pode obter o IMEI do dispositivo usando o seguinte código em Java:

import android.content.Context;
import android.telephony.TelephonyManager;
import android.os.Build;

public class MainActivity extends AppCompatActivity {

    private String getIMEINumber() {

        TelephonyManager telephonyManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);

        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
            // para Android 10 e posterior
            return telephonyManager.getImei();
        } else {
            // para versões anteriores ao Android 10
            return telephonyManager.getDeviceId();
        }
    }
}

Este código usa a classe TelephonyManager para obter o IMEI do dispositivo. Se o dispositivo estiver executando o Android 10 ou posterior, ele usará o método getImei(). Caso contrário, para versões anteriores ao Android 10, o código usará o método getDeviceId().

Lembre-se de que, para usar o IMEI em seu aplicativo, você precisará adicionar a permissão READ_PHONE_STATE ao manifesto do aplicativo. Para fazer isso, basta adicionar a seguinte linha no arquivo AndroidManifest.xml:

<uses-permission android:name="android.permission.READ_PHONE_STATE"/>

Com essa permissão e o código acima, você poderá obter o IMEI do dispositivo no Android 12 e usá-lo em seu aplicativo.

Não sei se esta resposta está certa, mas dei uma buscada na documentação no link:Documentação Android Developer

Claro, se você não está desenvolvendo em Java talvez de pra usar o ChatGPT pra escrever em outra linguagem.
Abraços.

1