Главная » Разработка для Android » Доступ к свойствам телефона и сети, а также отслеживание подключения и операций по передаче данных

0

Доступ к телефонным API контролируется объектом TelephonyManager, который можно получить с помощью метода getSystemService, как показано в листинге 12.2.

Листинг 12.2. Доступ к объекту TelephonyManager

String srvcName = Context.TELEPHONY_SERVICE; TelephonyManager telephonyManager = (TelephonyManager) getSystemService(srvcName);

TelephonyManager предоставляет прямой доступ ко многим телефонным свойствам, в том числе к информации об устройстве, сети, SIM-карте и ходе передачи данных.

Считывание информации о телефонном устройстве

С помощью объекта TelephonyManager можно получить  тип телефона (GSM или CDMA), уникальный идентификатор (IMEI или MEID), версию программного обеспечения, а также телефонный номер. Обратите внимание, что все эти свойства  (кроме  первого)  требуют наличия  в манифесте  при- ложения  полномочия READ_PHONE_STATE.

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

В листинге 12.3 показано, как извлечь эту информацию.

Листинг 12.3. Считывание информации о телефонном устройстве

int phoneType = telephonyManager.getPhoneType();

switch (phoneType) {

case (TelephonyManager.PHONE_TYPE_CDMA): break; case (TelephonyManager.PHONE_TYPE_GSM) : break; case (TelephonyManager.PHONE_TYPE_NONE): break; default: break;

}

// — Эти свойства требуют наличие полномочия READ_PHONE_STATE –

// Считывание IMEI для GSM или MEID для CDMA String deviceId = telephonyManager.getDeviceId();

// Считывание версии программного обеспечения на телефоне (учтите,

// что это не версия SDK)

String softwareVersion = telephonyManager.getDeviceSoftwareVersion();

// Получение телефонного номера

String phoneNumber = telephonyManager.getLine1Number();

Считывание информации о состоянии соединения и о статусе процесса передачи данных

С помощью методов getDataState и getDataActivity можно узнать те- кущее состояние  соединения  с сетью и информацию о передаче данных, как показано в листинге 12.4. Далее в этой главе вы научитесь отслеживать изменения этих параметров.

Листинг 12.4. Считывание информации о состоянии соединения  и статусе процесса передачи данных

int dataActivity = telephonyManager.getDataActivity();

int dataState = telephonyManager.getDataState();

switch (dataActivity) {

case TelephonyManager.DATA_ACTIVITY_IN : break; case TelephonyManager.DATA_ACTIVITY_OUT : break; case TelephonyManager.DATA_ACTIVITY_INOUT : break; case TelephonyManager.DATA_ACTIVITY_NONE : break;

}

switch (dataState) {

case TelephonyManager.DATA_CONNECTED : break; case TelephonyManager.DATA_CONNECTING : break; case TelephonyManager.DATA_DISCONNECTED : break; case TelephonyManager.DATA_SUSPENDED : break;

}

Источник: Майер P. Android 2 : программирование приложений для планшетных компьютеров и смартфонов : [пер. с англ. ] / Рето Майер. — М. : Эксмо, 2011. — 672 с. — (Мировой компьютерный бестселлер).

По теме:

  • Комментарии