# Получение данных о сетях мобильной связи (2/3/4/5G) ## Класс TelephonyManager Для получения доступа к информации о сетях мобильной связи потребуются `разрешения\permissions`: **AndroidManifest.xml** ```xml ``` Получение разрешений: ```kotlin override fun onResume() { super.onResume() if (ContextCompat.checkSelfPermission(this, android.Manifest.permission.READ_PHONE_STATE) != PackageManager.PERMISSION_GRANTED || ContextCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED ) { Log.d(TAG, "Нет разрешений READ_PHONE_STATE или ACCESS_COARSE_LOCATION для получения cell info") ActivityCompat.requestPermissions( this, arrayOf(android.Manifest.permission.READ_PHONE_STATE, android.Manifest.permission.ACCESS_COARSE_LOCATION), 1 ) } // Тут будет получение информации о сетях мобильной связи ... ... } ``` Работа с классом `TelephonyManager`: ```kotlin // Необходимые модули import android.content.Context import android.telephony.TelephonyManager ... ... override fun onResume() { super.onResume() // Здесь получали разрешения, см. код выше ... val telephonyManager = getSystemService(Context.TELEPHONY_SERVICE) as TelephonyManager val cellInfoList = telephonyManager.allCellInfo Log.d(TAG, "${cellInfoList.toString()}") // Выведем все в строку } ``` В результате получаем в `logcat` строку: ```bash [CellInfoLte:{mRegistered=YES mTimeStamp=225071574392525ns mCellConnectionStatus=1 CellIdentityLte:{ mCi=176224801 mPci=386 mTac=15401 mEarfcn=1626 mBands=[3] mBandwidth=15000 mMcc=250 mMnc=01 mAlphaLong=MTS RUS mAlphaShort=MTS RUS mAdditionalPlmns={} mCsgInfo=null } CellSignalStrengthLte: rssi=2147483647 rsrp=-96 rsrq=-15 rssnr=10 cqiTableIndex=2147483647 cqi=2147483647 ta=1 level=2 parametersUseForLevel=0 android.telephony.CellConfigLte :{ isEndcAvailable = false }}] ```