3

Мой Android версии 6.0 ЗефирКак получить номер IMEI/ESN устройства с кодом программирования Но андроида> 6

Как найти/получить номер IMEI в Android> 6 программно.

Примечание: я добавил разрешение READ_PHONE_STATE в файл AndroidManifest.xml.

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

А внутри MainActivity

TelephonyManager manager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); 
String deviceid = manager.getDeviceId(); 

//Device Id is IMEI number 

Log.d("msg", "Device id " + deviceid); 
+0

Отметьте это сообщение: http: //stackoverflow.com/questions/33078003/android-6-0-permission-error – Rafal

+0

какую ошибку вы получаете? – Amy

ответ

11

Мой Android версии Зефир 6,0

Примечание: Вы должны Permissions среды выполнения

Я добавил разрешение READ_PHONE_STATE в Android Файл Manifest.xml.

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

в MainActivity:

private static final int PERMISSIONS_REQUEST_READ_PHONE_STATE = 999; 

private TelephonyManager mTelephonyManager; 

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    if (checkSelfPermission(Manifest.permission.READ_PHONE_STATE) 
      != PackageManager.PERMISSION_GRANTED) { 
     requestPermissions(new String[]{Manifest.permission.READ_PHONE_STATE}, 
       PERMISSIONS_REQUEST_READ_PHONE_STATE); 
    } else { 
     getDeviceImei(); 
    } 
.... 

@Override 
public void onRequestPermissionsResult(int requestCode, String[] permissions, 
             int[] grantResults) { 
    if (requestCode == PERMISSIONS_REQUEST_READ_PHONE_STATE 
      && grantResults[0] == PackageManager.PERMISSION_GRANTED) { 
     getDeviceImei(); 
    } 
} 

private void getDeviceImei() { 

    mTelephonyManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); 
    String deviceid = mTelephonyManager.getDeviceId(); 
    Log.d("msg", "DeviceImei " + deviceid); 
} 
0

Требуется разрешение: READ_PHONE_STATE

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

/** 
* Gets the device unique id called IMEI. Sometimes, this returns 00000000000000000 for the 
* rooted devices. 
**/ 
public static String getDeviceImei(Context ctx) { 
    TelephonyManager telephonyManager = (TelephonyManager) ctx.getSystemService(Context.TELEPHONY_SERVICE); 
    Log.i(Tag, "Return Sim count in device : "+manager.getPhoneCount()); 
    Log.i(Tag, "Defualt device ID: "+manager.getDeviceId()); 
    Log.i(Tag, "First Sim IMEI: "+manager.getDeviceId(0)); 
    Log.i(Tag, "Secand Sim IMEI "+manager.getDeviceId(1)); 
    return telephonyManager.getDeviceId(); 
} 

Возврат нуль, если идентификатор устройства отсутствует.

1

Также getDeviceId() метод осуждался в уровне API 26. Таким образом, в дальнейшем вам нужно использовать getImei() или getAllCellInfo() для извлечения деталей IMEI.

 Смежные вопросы

  • Нет связанных вопросов^_^