问题描述
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