Есть вопрос?
Зайди на форум

Поиск:

Denix: русификация Ubuntu и кодеки :: RSS:: Скачать книги Колисниченко в PDF

Англо-русский словарь компьютерных терминов (Д. Колисниченко)

A  B  C  D  E  F  G  H  I  K  L  M  N  O  P  Q  R  S  T  V  W  X  Y  Z 

укрпочта отслеживание посылок перевод денег график отключения света в Кировограде график отключения счета в Киеве график отключения света в Одессе (zip)

Фрагмент из книги Дениса Колисниченко "Самоучитель. Программирование для Android"

16.1. Получение информации о телефоне

Уверен, что эта глава будет интересна большинству читателей, поскольку в ней мы поговорим о программировании оборудования телефона. Сначала мы узнаем, как с помощью Telephony Manager получить информацию о телефоне, определить состояние телефона и набрать номер. Потом мы рассмотрим, как использовать датчики (сенсоры), камеру и Bluetooth-адаптер вашего телефона. В отличие от других глав, в этой главе желательно тестировать программы не в эмуляторе, а на физическом устройстве — настоящем телефоне, поскольку возможности эмулятора ограничены, и полностью протестировать программы из этой главы в нем не получится.

Начнем мы с получения информации о телефоне. Для этого мы будем использовать класс TelephonyManager. Прежде, чем приступить к написанию кода, нужно добавить в файл манифеста следующую строку:

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

Данная строка разрешает приложению читать состояние телефона (рис. 16.1).

Редактирование файла манифеста приложения

Рис. 16.1. Редактирование файла манифеста приложения

Файл разметки проекта по умолчанию подойдет для нашего приложения почти без изменений. Нужно только добавить свойство id для элемента TextView (лист. 16.1).

Листинг 16.1. Файл разметки TM/res/layout/main.xml для проекта TM

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
<TextView  
    android:id="@+id/info"
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="@string/hello"
    />
</LinearLayout>

Java-код приложения с комментариями приведен в листинге 16.2.

Листинг 16.2. Java-код приложения TM

package com.samples.tm;

import android.app.Activity;
import android.os.Bundle;
import android.telephony.TelephonyManager;
import android.widget.TextView;

public class TMActivity extends Activity {
	TextView info;			// Текстовая область TextView
	TelephonyManager tm;		// Для информации об устройстве
	
  @Override
  public void onCreate(Bundle savedInstanceState) {
	String EOL = "\n";		
		
	super.onCreate(savedInstanceState);
	setContentView(R.layout.main);
	
	// Находим текстовую область в разметке
info =(TextView) findViewById(R.id.info);
// Создаем объект tm для получения информации о телефоне
	tm = (TelephonyManager)getSystemService(TELEPHONY_SERVICE);
	// буфер строк
	StringBuilder sb = new StringBuilder();
	
	// Общая информация об устройстве
	sb.append("Общая информация:\n\n");
	sb.append("ID устройства :")
	.append(tm.getDeviceId()).append(EOL);
	sb.append("Версия ПО: ")
	.append(tm.getDeviceSoftwareVersion()).append(EOL);
	sb.append("Номер телефона: ")
	.append(tm.getLine1Number()).append(EOL);
	
	// Информация об операторе, выдавшем SIM-карту
	sb.append("\nОператор:\n\n");
	sb.append("Код страны (ISO): ")
	.append(tm.getSimCountryIso()).append(EOL);
	sb.append("Оператор: ")
	.append(tm.getSimOperator()).append(EOL);
	sb.append("Название оператора: ")
	.append(tm.getSimOperatorName()).append(EOL);
	sb.append("Серийный номер SIM-карты: ")
	.append(tm.getSimSerialNumber()).append(EOL);
	
	// Информация о текущей сети
	sb.append("\nСеть:\n\n");
	sb.append("Код страны (ISO): ")
	.append(tm.getNetworkCountryIso()).append(EOL);
	sb.append("Оператор сети: ")
	.append(tm.getNetworkOperator()).append(EOL);
	sb.append("Название оператора сети: ")
	.append(tm.getNetworkOperatorName()).append(EOL);
	
	// Голосовая почта и другая информация
	sb.append("\nДругая информация:\n\n");
	sb.append("ID подписчика: ")
	.append(tm.getSubscriberId()).append(EOL);
	sb.append("Альфа-тег голосовой почты: ")
	.append(tm.getVoiceMailAlphaTag()).append(EOL);
	sb.append("Номер голосового почтового ящика: ")
	.append(tm.getVoiceMailNumber()).append(EOL);

	// Выводим содержимое буфера строк в текстовую область
	info.setText(sb.toString());
	}
}

Результат работы нашего приложения приведен на рис. 16.2.

Полная информация об устройстве

Рис. 16.2. Полная информация об устройстве 16.2. Прослушивание состояния телефона

Иногда нужно выполнить какие-то действия только при определенном состоянии телефона, например, при входящем звонке или при завершении звонка. Например, вы хотите создать программу записи входящих (или исходящих) звонков. Тогда вам нужно прослушивать состояние телефона: как только будет обнаружен входящий (исходящий) звонок, вам нужно начать запись разговора. Кстати, именно такую программу мы создавать не будем, поскольку есть уже готовая бесплатная программа vRecorder. Зато разберемся, как прослушать состояние телефона, а при желании вы сможете самостоятельно написать собственный аналог vRecorder.

Для прослушивания состояния телефона с целью ожидания какого-события используются "прослушки", подробно описанные на странице руководства разработчика Android:

http://developer.android.com/reference/android/telephony/PhoneStateListener.html

Мы рассмотрим только наиболее часто используемую "прослушку" PhoneStateListener.LISTEN_CALL_STATE, позволяющую определить номер входящего звонка (и, соответственно, выполнить определенные действия при входящем звонке). Возможны три состояния звонка:

Сейчас мы напишем программу, которая реагирует на все три состояния звонка и ничего не делает — действия вы сможете определить сами. Такое решение было принято, дабы не захламлять код. А что делать, решите вы сами — можно, например, вывести уведомление при получении звонка. Чтобы вы могли определить собственные действия при изменении состояния звонка, мы переопределим метод onCallStateChanged().

Код нашей программы приведен в листинге 16.3.

Листинг 16.3. Реакция на изменение состояния звонка

package com.samples.callstate;

import android.app.Activity;
import android.os.Bundle;
import android.telephony.PhoneStateListener;
import android.telephony.TelephonyManager;
import android.widget.TextView;

public class HardwareTelephony extends Activity {
TextView info;			// Сюда можно выводить информацию о звонке
TelephonyManager tm;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

info =(TextView) findViewById(R.id.info);
// Создаем объект класса TelephonyManager
tm = (TelephonyManager)getSystemService(TELEPHONY_SERVICE);
// Устанавливаем "прослушку" для LISTEN_CALL_STATE
tm.listen(new TelListener(),PhoneStateListener.LISTEN_CALL_STATE);
}

private class TelListener extends PhoneStateListener {
public void onCallStateChanged(int state, String incomingNumber) {
super.onCallStateChanged(state, incomingNumber);
switch (state) {
case TelephonyManager.CALL_STATE_IDLE:
  info.setText("IDLE");
                break;
case TelephonyManager.CALL_STATE_OFFHOOK:
  info.SetText("OFFHOOK, Вход. номер:" +incomingNumber);
                break;
case TelephonyManager.CALL_STATE_RINGING:
                info.SetText("RINGING, Вход. номер:" +incomingNumber);
                break;
              default:
         break;
  } // switch
     } // onCallStateChanged
   }
}

Наше приложение выводит в текстовую область (TextView) с именем info состояние телефона и номер входящего звонка, если таковой имеется. Файл разметки для этого приложения будет таким же, как и для предыдущего (см. лист. 16.1). Чтобы приложения работало корректно, в файл манифеста нужно добавить строку (см. рис. 16.1):

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

На главную

Мне нравится!

Сегодня: 18/01

Поздравлять сегодня некого

читать о тестировании приложений android

Последние посты форума

Интересная картинка

Samsung Galaxy J2 Prime (SM-G532F)

дааа

Обучение PHP-программированию

Новый дизайн сайта

Возвращение на динамическую страницу сайта

С Новым Годом!

Бесплатный хостинг, SSL сертификат, не ограниченно

капец погода в ноябре у нас

Посоветуйте хостинг

флэшмобы

вот люди где живут... экстрим

авто-дилеры

Программы для Linux

книга Командная строка Linux и автоматизация рутинных задач

Совет:

Книги Д. Колисниченко:

Linux

99 советов по Linux99 советов по Linux
Даны ответы на актуальные вопросы по использованию операционной системы Linux на домашнем или офисном компьютере. В данный момент книга устарела. Думаю, в скором времени реанимирую                                                                                                                         

Ubuntu 9. Библия пользователя Ubuntu 9. Библия пользователя
Книга "Ubuntu 9. Библия пользователя" представляет собой полное руководство по установке, настройке и использованию Linux-дистрибутива Ubuntu 9.                                                                                                                                                             

Linux. От новичка к профессионалу. 3-е изд.Linux. От новичка к профессионалу. 3-е изд.
Книга ориентирована на "среднего" и квалифицированного пользователя Linux и поможет ему самостоятельно настроить и оптимизировать эту операционную систему. Даны ответы на все вопросы, возникающие при работе с Linux: от установки и настройки этой ОС д                                                   

PHP

PHP 5/6 и MySQL 6. Разработка Web-приложенийPHP 5/6 и MySQL 6. Разработка Web-приложений
На практических примерах описана разработка Web-приложений на языке PHP версий 5 и 6. Лучшая моя книга по PHP, ищите в продаже 3-е издание! Издательство БХВ- Петербург                                                                                                                                      

Самоучитель PHP 4/5Самоучитель PHP 4/5
Моя первая книга по PHP, на базе которой была написана книга Самоучитель PHP5 (НиТ). Давно распродана и не поддерживается                                                                                                                                                                                    

Современный сайт на РНР и JavaScript (+CD)Современный сайт на РНР и JavaScript (+CD)
Эта книга о PHP и не только. С помощью PHP вы легко создадите сайт любого масштаба — от небольшой личной странички до сайта уровня предприятия со сложной панелью управления.                                                                                                                                

Интернет/CMS

Joomla 1.5.15/1.6.0. Руководство пользователяJoomla 1.5.15/1.6.0. Руководство пользователя
Эта книга — простое и эффективное учебное пособие по освоению и использованию системы управления контентом веб-сайта Joomla 1.5.15/1.6. Отличное руководство для начинающих                                                                                                                                  

Интернет: от Интернет: от "чайника" к пользователю. - 3-е изд
Книга предназначена для начинающего домашнего пользователя, поможет ему самостоятельно освоить основы Интернета и начать уверенную работу. Рассмотрены все аспекты работы в Интернете: выбор подключения, настройка подключения обычного, ADSL- и 3G-модем                                                   

Движок для вашего сайта. CMS Joomla!, Slaed, PHP-NukeДвижок для вашего сайта. CMS Joomla!, Slaed, PHP-Nuke
Книга ориентирована как на обычных пользователей Интернета, которым нужно в кратчайшие сроки создать свой сайт, так и на разработчиков, которые заинтересованы в построении собственной системы управления сайтом.                                                                                           

Компьютер/Windows

Microsoft Windows 10. Первое знакомствоMicrosoft Windows 10. Первое знакомство
Описаны основные нововведения в Windows 10, особое внимание уделено использованию системы на планшете. Рассмотрена установка системы как на физический компьютер (стационарный, ноутбук, нетбук, планшет)...                                                                                             

Microsoft Windows 8 для пользователейMicrosoft Windows 8 для пользователей
Описаны нововведения Windows 8, особое внимание уделено использованию системы на планшете. Рассмотрена установка системы как на физический компьютер (стационарный, ноутбук, нетбук, планшет)                                                                                                                

Секреты, настройка и оптимизация реестра Windows 7Секреты, настройка и оптимизация реестра Windows 7
Рассмотрено устройство, настройка и оптимизация реестра, секреты и трюки при работе с ним, параметры популярных Windows-приложений. Описаны программы для мониторинга...                                                                                                                                     

Сети

Сделай сам компьютерную сеть. Монтаж, настройка, обслуживание. Изд. 2.Сделай сам компьютерную сеть. Монтаж, настройка, обслуживание. Изд. 2.
Книга о настройке сети в Windows (98,NT,XP) и Linux. Является превосходным практическим руководством по созданию и обслуживанию компьютерных сетей.                                                                                                                                                          

Беспроводная сеть дома и в офисеБеспроводная сеть дома и в офисе
Книга поможет начинающему администратору домашней или офисной сети в кратчайшие сроки развернуть, настроить или модернизировать беспроводную сеть. Отличный выбор для построения сети SOHO                                                                                                                   

Самоучитель системного администратора. 4-е изд.Самоучитель системного администратора. 4-е изд.
Изложены основные задачи системного администрирования, описаны базовые протоколы, даны рекомендации по выбору оборудования и проведению ежедневных рутинных операций. Подробно раскрыты технологии, используемые при построении информационных систем, опи                                                   

Безопасность

Анонимность и безопасность в Интернете. От Анонимность и безопасность в Интернете. От "чайника" к пользователю
Простым и понятным языком рассказано, как скрыть свое местонахождение и IP-адрес, используя анонимные сети Tor и I2P, посетить заблокированные администратором сайты, защитить личную переписку от посторонних глаз                                                                                          

Rootkits под Windows. Теория и практика программирования “шапок-невидимок“, позволяющих скрывать от системы данные, процессы, сетевые соединения.Rootkits под Windows. Теория и практика программирования “шапок-невидимок“, позволяющих скрывать от системы данные, процессы, сетевые соединения.
-                                                                                                                                                                                                                                                                                                            

Автомобили

Что делать, чтобы не надули в автосервисе. Советы и рекомендацииЧто делать, чтобы не надули в автосервисе. Советы и рекомендации
Вы недавно приобрели автомобиль или уже имеете водительский стаж, но при этом особо не вникаете в устройство автомобиля?                                                                                                                                                                                     

Что делать, чтобы не надули в автосервисе. Советы и рекомендацииЧто делать, чтобы не надули в автосервисе. Советы и рекомендации
Вы недавно приобрели автомобиль или уже имеете водительский стаж, но при этом особо не вникаете в устройство автомобиля?                                                                                                                                                                                     

Перед покупкой авто. Все, что необходимо знать покупателюПеред покупкой авто. Все, что необходимо знать покупателю
Книга отвечает на все вопросы, которые нужно прояснить для себя перед...                                                                                                                                                                                                                                     

Переводные книги

Переводные книгиПереводные книги
Данные книги были переведены мною на русский язык (с английского и чешского). Надеюсь качество перевода вам понравится!                                                                                                                                                                                      

Android

Безопасный Android: защищаем свои деньги и данные от кражиБезопасный Android: защищаем свои деньги и данные от кражи
Рассмотрены различные способы обеспечения безопасности Android-устройств: шифрование персональной информации, хранящейся на устройстве, шифрование передаваемых данных, VPN-соединения, анонимизация трафика                                                                                             

Планшет и смартфон на базе Android для ваших родителей, 2-е изд.Планшет и смартфон на базе Android для ваших родителей, 2-е изд.
Книга знакомит читателя с мобильными устройствами на базе Android. Она написана простым и понятным языком для людей среднего и старшего возраста                                                                                                                                                             

Планшет и смартфон на базе Android для ваших родителейПланшет и смартфон на базе Android для ваших родителей
Книга рассчитана на людей среднего и старшего возраста. Она поможет освоить современный «карманный компьютер» на базе Android, в котором все новое и "не так, как в Windows". Доступным языком описывается, как включить и выключить смартфон и т.д.                                                         

Статьи

Rambler's Top100