Я разрабатываю приложение для Android с Kotlin, я использую API 28.
Я хочу получить номер устройства. В начале я использую TelephonyManager.deviceId, после некоторых исследований я обнаружил, что он устарел.
Я нашел в качестве решения, замените deviceId на getImei ()
Следующая выдержка из моего кода:
val telephonyManager = getSystemService(Context.TELEPHONY_SERVICE) as TelephonyManager
if (telephonyManager != null) {
val androidID = Settings.Secure.getString(this.contentResolver, Settings.Secure.ANDROID_ID)
if (androidID != null) {
Utility().DEVICE_ID = androidID
Utility().setDataBykeyValue(applicationContext, AppController.SHAIRD_PREF_DEVICE_ID, androidID)
} else {
val devId = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) telephonyManager.getImei()
else telephonyManager.getDeviceId()
Utility().DEVICE_ID = devId
Utility().setDataBykeyValue(applicationContext, AppController.SHAIRD_PREF_DEVICE_ID, devId)
}
Utility().CARRIER = telephonyManager.simOperatorName
}
Также я добавляю это разрешение в мой AndroidManifest.xml:
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
"telephonyManager.getImei ()" подчеркивается красной линией, и появляются следующие сообщения:
Для вызова требуется разрешение, которое может быть отклонено пользователем: код должен
явно проверьте, если разрешение доступно (с
checkPermission) или явно обработать потенциальный
Я хочу знать, в чем проблема и как я могу ее исправить