Маркетинг и публикация приложений на Google Play

advertisement
Мобильная связь в
приложениях для
смартфона
Авторы: Березовская Ю.В., Латухина Е.А., Юфрякова О.А.
Лекция 5
Содержание

Возможности мобильной связи в приложениях
для смартфона

Телефонная связь

Работа с SMS

Сетевые соединения
Разработку приложений для смартфонов на ОС Android. Лекция 5. Тема
"Мобильная связь в приложениях для смартфона"
Возможности мобильной
связи в приложениях для
смартфона
Разработку приложений для смартфонов на ОС Android. Лекция 5. Тема
"Мобильная связь в приложениях для смартфона"
Возможности мобильной связи

Возможность совершения телефонных звонков

Возможность получения и отправки SMS

Возможность выхода в Интернет через
мобильную сеть
Разработку приложений для смартфонов на ОС Android. Лекция 5. Тема
"Мобильная связь в приложениях для смартфона"
Использование стандартных приложений

Часто нет смысла изобретать велосипед
(приложение на замену стандартному)

Вызов стандартных активностей смартфона,
предназначенных для выполнения нужных
действий

Если на устройстве имеется несколько
вариантов таких приложений, операционная
система предложит пользователю выбор
Разработку приложений для смартфонов на ОС Android. Лекция 5. Тема
"Мобильная связь в приложениях для смартфона"
Особенности работы с планшетами

Планшеты на Android часто имеют разъем для
подключения SIM-карт

Редко позволяют использование в качестве
телефона

Может быть возможность работы с SMS

Использование мобильного Интернета

Проверять тип устройства!
Разработку приложений для смартфонов на ОС Android. Лекция 5. Тема
"Мобильная связь в приложениях для смартфона"
Телефонная связь
Разработку приложений для смартфонов на ОС Android. Лекция 5. Тема
"Мобильная связь в приложениях для смартфона"
Использование эмуляторов для
тестирования обработки звонков

Нужно создать несколько экземпляров
эмуляторов

Первый эмулятор получит абонентский номер
5554, номера следующих последовательно
увеличиваются на 2 (5556, 5558, …)

После запуска эмуляторов на одном из них
необходимо открыть панель набора номера,
ввести номер второго эмулятора и сделать
вызов
Разработку приложений для смартфонов на ОС Android. Лекция 5. Тема
"Мобильная связь в приложениях для смартфона"
Использование эмуляторов для
тестирования обработки звонков
Разработку приложений для смартфонов на ОС Android. Лекция 5. Тема
"Мобильная связь в приложениях для смартфона"
Вызов номера из приложения

Приложения Android способны вызывать
телефонные номера, но только через запуск
наборной панели

Вызов экрана набора номера осуществляется
через специальный интент

Можно вызвать стандартную панель набора
номера или передать в этот экран номер
конкретного абонента
Разработку приложений для смартфонов на ОС Android. Лекция 5. Тема
"Мобильная связь в приложениях для смартфона"
Работа с SMS
Разработку приложений для смартфонов на ОС Android. Лекция 5. Тема
"Мобильная связь в приложениях для смартфона"
Работа с SMS

Для
работы
с
SMS
используется
класс
SMSManager

Для создания экземпляра класса SMSManager
используется метод getDefault()
SmsManager smsManager = SmsManager.getDefault();
Разработку приложений для смартфонов на ОС Android. Лекция 5. Тема
"Мобильная связь в приложениях для смартфона"
Отправка SMS
Метод sendTextMessage:
public void sendTextMessage
(String destinationAddress, //номер получателя
String scAddress, //номер центра сообщений
оператора
String text, //текст
PendingIntent sentIntent, //отчет об отправке
PendingIntent deliveryIntent) //отчет о доставке
Разработку приложений для смартфонов на ОС Android. Лекция 5. Тема
"Мобильная связь в приложениях для смартфона"
Отчет об отправке

Activity.RESULT_OK, если сообщение было
отправлено успешно

RESULT_ERROR_GENERIC_FAILURE,
RESULT_ERROR_RADIO_OFF или
RESULT_ERROR_NULL_PDU, если сообщение
отправить не удалось
Разработку приложений для смартфонов на ОС Android. Лекция 5. Тема
"Мобильная связь в приложениях для смартфона"
Настройка разрешений в манифесте
<uses-permission
android:name="android.permission.RECEIVE_SMS"
></uses-permission> //получение
<uses-permission
android:name="android.permission.READ_SMS" />
//чтение
<uses-permission
android:name="android.permission.SEND_SMS"></
uses-permission> //отправка
Разработку приложений для смартфонов на ОС Android. Лекция 5. Тема
"Мобильная связь в приложениях для смартфона"
Перехват SMS

При получении SMS-сообщения система
генерирует Broadcast Intent

Для перехвата входящих сообщений
используется BroadcastReceiver

Интент-фильтр (в манифесте) для отбора
получаемых сообщений
<receiver
android:name="com.androidexample.broadcastreceiver.IncomingSms">
<intent-filter>
<action android:name="android.provider.Telephony.SMS_RECEIVED" />
</intent-filter>
</receiver>
Разработку приложений для смартфонов на ОС Android. Лекция 5. Тема
"Мобильная связь в приложениях для смартфона"
Перехват SMS

Добавить в проект новый класс IncomingSms:
public class IncomingSms extends
BroadcastReceiver

Создать SmsManager для работы с сообщениями:
final SmsManager sms =
SmsManager.getDefault();

Создать в этом классе метод onReceive,
обрабатывающий полученные сообщения:
public void onReceive(Context context,
Intent intent)
Разработку приложений для смартфонов на ОС Android. Лекция 5. Тема
"Мобильная связь в приложениях для смартфона"
Перехват SMS
final Bundle bundle = intent.getExtras();
try {
if (bundle != null) {
final Object[] pdusObj = (Object[]) bundle.get("pdus");
for (int i = 0; i < pdusObj.length; i++) {
SmsMessage currentMessage = SmsMessage.createFromPdu((byte[]) pdusObj[i]);
String phoneNumber = currentMessage.getDisplayOriginatingAddress();
String senderNum = phoneNumber;
String message = currentMessage.getDisplayMessageBody();
Log.i("SmsReceiver", "senderNum: "+ senderNum + "; message: " + message);
// Show alert
int duration = Toast.LENGTH_LONG;
Toast toast = Toast.makeText(context, "senderNum: "+ senderNum + ",
message: " + message, duration);
toast.show();
} // end for loop
} // bundle is null
} catch (Exception e) {
Log.e("SmsReceiver", "Exception smsReceiver" +e);
}
Разработку приложений для смартфонов на ОС Android. Лекция 5. Тема
"Мобильная связь в приложениях для смартфона"
Сетевые соединения
Разработку приложений для смартфонов на ОС Android. Лекция 5. Тема
"Мобильная связь в приложениях для смартфона"
Класс ConnectivityManager

Мониторинг сетевых соединений (Wi-Fi, GPRS,
UMTS и т.д.)

Рассылка интентов при изменении статуса
сетевых соединений

Подключение к альтернативной сети, если
соединение было потеряно

Предоставляет API, который позволяет
приложениям отправлять запросы на получение
статуса сетевых соединений
Разработку приложений для смартфонов на ОС Android. Лекция 5. Тема
"Мобильная связь в приложениях для смартфона"
Методы ConnectivityManager

getActiveNetworkInfo () – получение информации
об активном сетевом соединении

getAllNetworkInfo () – получение информации о
всех сетевых соединениях, поддерживаемых
устройством

getNetworkInfo (int networkType) – возвращает
информацию о статусе текущего сетевого
соединения
Разработку приложений для смартфонов на ОС Android. Лекция 5. Тема
"Мобильная связь в приложениях для смартфона"
Класс NetworkInfo

getType () – возвращает целочисленное
значение, определяющее тип сети. Это может
быть одна из констант TYPE_MOBILE, TYPE_WIFI,
TYPE_WIMAX, TYPE_ETHERNET, TYPE_BLUETOOTH
или какое-то другое выражение, определенное
в классе ConnectivityManager

getSubtype () – возвращает значение,
определяющее тип подсети

getSubtypeName () – возвращает описательное
имя типа подсети
Разработку приложений для смартфонов на ОС Android. Лекция 5. Тема
"Мобильная связь в приложениях для смартфона"
Класс NetworkInfo

isAvailable () – проверяет доступность сети, в случае
положительного ответа возвращает true

isConnected () – возвращает true, если сетевое
соединение установлено и через него можно
передавать данные

isConnectedOrConnecting ()– возвращает true в случае
обнаружения установленного или устанавливаемого
сетевого соединения

isRoaming () – возвращает true, если мобильное
устройство находится в роуминге
Разработку приложений для смартфонов на ОС Android. Лекция 5. Тема
"Мобильная связь в приложениях для смартфона"
Список дополнительных источников

Голощапов А.Л. Android. Создание приложений
для смартфонов и планшетных ПК / СПб: БХВ-
Петербург, 2013 г

Документация по работе с SMSManager
https://developer.android.com/reference/android
/telephony/SmsManager.html
Разработку приложений для смартфонов на ОС Android. Лекция 5. Тема
"Мобильная связь в приложениях для смартфона"
Download