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.