Шаг 7. SMS, звонки, SIM, NFC

Шаг 7. SMS, звонки, SIM, NFC

Сообщение EgorovAD MEPhI » 26 ноя 2012, 20:29

SMS
Для отсылки SMS достаточно получить экземпляр класса android.telephony.SmsManager и вызвать соответствующий метод для отправки сообщения. Рассмотрим простейший пример отсылки SMS сообщения.

Код: выделить все
SmsManager sm = SmsManager.getDefault();
String number = "+71234567890";
sm.sendTextMessage(number, null, "Test SMS Message", null, null);


Для получения SMS необходимо зарегистрировать BroadcastReceiver по действию android.provider.Telephony.SMS_RECEIVED.

Доступ и модификация имеющихся SMS сообщений выполняется через контент-провайдеры. Несмотря на то, что эти возможности не документированы, можно получить доступ к сообщениям через ContentResolver.query() с Uri “content://sms”.

При работе с SMS могут понадобиться следующие разрешения: READ_SMS, RECEIVE_SMS, SEND_SMS, WRITE_SMS. Их названия говорят сами за себя.
EgorovAD MEPhI
Администратор
 
Сообщений: 155
Зарегистрирован: 04 ноя 2011, 11:49

Шаг 7. SMS, звонки, SIM

Сообщение EgorovAD MEPhI » 26 ноя 2012, 20:30

Звонки
Звонки возможно совершать из приложения посредством вызова стандартного приложения, отвечающего за звонки. Обратимся сразу к примеру.
Код: выделить все
Intent callIntent = new Intent(Intent.ACTION_CALL);
callIntent.setData(Uri.parse("tel:123456789"));
startActivity(callIntent);


Как можно убедиться на примере, всё достаточно просто: создаем интент с действием ACTION_CALL, задаем номер телефона и запускаем стандартное приложение!
Для совершения звонков понадобится разрешение CALL_PHONE.
EgorovAD MEPhI
Администратор
 
Сообщений: 155
Зарегистрирован: 04 ноя 2011, 11:49

Шаг 7. SMS, звонки, SIM, NFC

Сообщение EgorovAD MEPhI » 26 ноя 2012, 20:32

SIM и сеть

Android предоставляет возможность получить следующую информацию о SIM карте и сети:
    • состояние сотовой сети (в сети, вне сети, звонок);
    • информация о видимых сотах (Lac, Cell id, уровень сигнала);
    • состояние SIM карты (нет SIM карты, заблокирована и т.д.);
    • IMEI;
    • код страны MCC и код оператора MNC;
    • название оператора;
    • находится ли телефон в роуминге.

Также возможно следить за изменениями состояния сотовой сети через BroadcastReceiver.
Для получения IMEI достаточно получить системный сервис TelephonyManager и вызвать его метод getDeviceId().


Код: выделить все
TelephonyManager tm = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
String imei = tm.getDeviceId();


API для работы с SIM и сетью находятся в классе an-droid.telephony.TelephonyManager. При работе с SIM понадобится разрешение на определение состояния телефона READ_PHONE_STATE.
EgorovAD MEPhI
Администратор
 
Сообщений: 155
Зарегистрирован: 04 ноя 2011, 11:49

Шаг 7. SMS, звонки, SIM, NFC

Сообщение EgorovAD MEPhI » 26 ноя 2012, 20:33

NFC
NFC – технология беспроводной связи малого радиуса действия, обычно необходимо расстояние 4 см или меньше для того, чтобы произошло соединение. Существует несколько вариантов использования NFC:
    • обмен информацией между двумя устройствами;
    • режим метки: телефон ведет себя, как бесконтактная карта;
    • режим считывания: устройство является активным и считывает метку.
Основное API для работы с NFC находится в классе android.nfc.NfcAdapter, также не забывайте в манифесте указать разрешение NFC.
EgorovAD MEPhI
Администратор
 
Сообщений: 155
Зарегистрирован: 04 ноя 2011, 11:49


Вернуться в 4. Использование периферии

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2