问题 AL TRATAR DE OBTENER EL IMEI DE MI TELEFONO

问题描述

al momento de que trato de obtener el IMEI de mi dispositivo me arroja el siguiente 错误The user 10618 does not meet the requirements to access device identifiers. Esto empezo a suceder despues de que actualize mi telefono、por que antes de ello si me valia、pienso que tiene que ver algo con APIs anticuadas、agradeceria muchisimo si me pudiesen ayudar a solucionar el error。

Permisos en el MANIFEST
<uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.SEND_SMS" />

PARTE DEL CODIGO EN JAVA、DONDE TRATO DE OBTENER EL IMEI、EL ERROR ME INDICA EN: imei = tm.getImei(); //el sistema me arroja que aqui es el error

@RequiresApi(api = Build.VERSION_CODES.O)
    @SuppressLint("WrongViewCast")
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        escribe_imei = findViewById(R.id.textView8446);

        String imei = "";

        int permisI = ContextCompat.checkSelfPermission(MainActivity.this,Manifest.permission.READ_PHONE_STATE);


        if(permisI == PackageManager.PERMISSION_GRANTED){

            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
                tm = (TelephonyManager)getApplicationContext().getSystemService(Context.TELEPHONY_SERVICE);
                imei = tm.getImei();  //el sistema me arroja que aqui es el error
                final String imeitoprocess = imei;
                escribe_imei.setText(imeitoprocess);
            } else {
                tm = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
                imei = tm.getdeviceid();
                final String imeitoprocess = imei;
                escribe_imei.setText(imeitoprocess);
            }

        }else{
            ActivityCompat.requestPermissions(this,new String[]{Manifest.permission.READ_PHONE_STATE},123);
        }

解决方法

Android 10 partir de Android 10 acceder a identificadores restringidos como el IMEI ocupan un "permiso de Firma" READ_PRIVILEGED_PHONE_STATE。 Pero no podrias publicar tu app en el Google Store por usar ese permiso。

Puedes encontrar más information en https://developer.android.com/about/versions/10/privacy/changes