【问题标题】:PROBLEMA AL TRATAR DE OBTENER EL IMEI DE MI TELEFONO [closed]PROBLEMA AL TRATAR DE OBTENER EL IMEI DE MI TELEFONO [关闭]
【发布时间】:2021-07-17 20:22:56
【问题描述】:

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 sucder 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);
        }

【问题讨论】:

标签: java android android-studio compiler-errors imei


【解决方案1】:

a 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 informationacion en https://developer.android.com/about/versions/10/privacy/changes

【讨论】:

  • 你好,disculpe a lo que se refiere con lafirma es que me tocaria exprtar la APK Firmada para que no me de aquel 错误?
  • 不,es un permiso que solo pueden usar apps de la plataforma o de sistema(por ejemlo apps que algunoscarrier agregan)。 Ya no es posible para apps "regulares" acceder a este tipo de identificadores。
  • entiendo, entonces si deseo subir mi apk a la Google Play no debo usar el IMEI?
  • Correcto no se lo que ocupe usted, pero hay otras formas para "identificar" al usuario, podria ver si generar un UUID le puede servir, eso si se Genera uno por instalacion
猜你喜欢
  • 1970-01-01
  • 2023-02-07
  • 2014-09-14
  • 2022-06-14
  • 2022-06-25
  • 1970-01-01
  • 2022-06-17
  • 2014-08-13
  • 2023-04-08
相关资源
最近更新 更多