Android Beam
Android Beam — это технология Near Field Communication (NFC), представленная в Android 4.0, которая позволяет приложениям совместно использовать информацию через NFC, если они находятся поблизости друг от друга.
Android Beam поддерживает передачу сообщений через NFC, если два устройства находятся в диапазоне действия. Устройства, которые находятся друг от друга на расстоянии 4 см, могут обмениваться данными с помощью Android Beam. Действие на одном устройстве создает сообщение и указывает действие (или действия), которое может выполнять его принудительную отправку. Если указанное действие находится на переднем плане, а устройства находятся в диапазоне действия, Android Beam отправляет сообщение на второе устройство. На принимающем устройстве вызывается намерение, содержащее данные сообщения.
Android поддерживает два способа настройки сообщений с помощью Android Beam.
- SetNdefPushMessage — перед инициацией Android Beam приложение может вызвать SetNdefPushMessage, чтобы указать NdefMessage выполнять отправку через NFC, и действие, которое отправляет его. Этот механизм лучше использовать, если сообщение не изменяется во время использования приложения.
- SetNdefPushMessageCallback — когда Android Beam инициируется, приложение может реализовать обратный вызов для создания NdefMessage. Этот механизм позволяет отложить создание сообщений, пока устройства не будут находиться в диапазоне действия. Он поддерживает сценарии, в которых сообщение может изменяться в зависимости от того, что происходит в приложении.
В любом случае, чтобы отправлять данные с помощью Android Beam, приложение отправляет NdefMessage , упаковывая данные в несколько NdefRecords . Рассмотрим ключевые моменты, которые необходимо устранить, прежде чем активировать Android Beam. Во первых, мы будем работать со стилем обратного вызова создания NdefMessage .
Создание сообщения
Обратные вызовы можно зарегистрировать с помощью NfcAdapter в методе OnCreate действия. Например, если NfcAdapter с именем mNfcAdapter объявляется в действии как переменная класса, для создания обратного вызова можно написать следующий код, который будет формировать сообщение:
mNfcAdapter = NfcAdapter.GetDefaultAdapter (this); mNfcAdapter.SetNdefPushMessageCallback (this, this);
Действие, которое реализует NfcAdapter.ICreateNdefMessageCallback , передается методу SetNdefPushMessageCallback , предоставленному выше. При инициации Android Beam система вызывает команду CreateNdefMessage , из которой действие может создать NdefMessage , как показано ниже:
public NdefMessage CreateNdefMessage (NfcEvent evt) < DateTime time = DateTime.Now; var text = ("Beam me up!\n\n" + "Beam Time: " + time.ToString ("HH:mm:ss")); NdefMessage msg = new NdefMessage ( new NdefRecord[]< CreateMimeRecord ( "application/com.example.android.beam", Encoding.UTF8.GetBytes (text)) >); > >; return msg; > public NdefRecord CreateMimeRecord (String mimeType, byte [] payload)
Получение сообщения
На принимающей стороне система вызывает намерение с действием ActionNdefDiscovered , из которого NdefMessage можно извлечь следующим образом:
IParcelable [] rawMsgs = intent.GetParcelableArrayExtra (NfcAdapter.ExtraNdefMessages); NdefMessage msg = (NdefMessage) rawMsgs [0];
Полный пример кода, в котором используется Android Beam, показанный на снимке экрана ниже, см. в Коллекции образцов Xamarin.Android. Демонстрационная версия Android Beam.
Связанные ссылки
Android Beam
Android Beam is a Near Field Communication (NFC) technology introduced in Android 4.0 that allows applications to share information over NFC when in close proximity.
Android Beam works by pushing messages over NFC when two devices are in range. Devices about 4cm from each other can share data using Android Beam. An Activity on one device creates a message and specifies an Activity (or Activities) that can handle pushing it. When the specified Activity is in the foreground and the devices are in range, Android Beam will push the message to the second device. On the receiving device, an Intent is invoked containing the message data.
Android supports two ways of setting messages with Android Beam:
- SetNdefPushMessage — Before Android Beam is initiated, an application can call SetNdefPushMessage to specify an NdefMessage to push over NFC, and the Activity that is pushing it. This mechanism is best used when a message doesn’t change while an application is in use.
- SetNdefPushMessageCallback — When Android Beam is initiated, an application can handle a callback to create an NdefMessage. This mechanism allows for message creation to be delayed until devices are in range. It supports scenarios where the message may vary based upon what’s happening in the application.
In either case, to send data with Android Beam, an application sends an NdefMessage , packaging the data in several NdefRecords . Let’s take a look at the key points that must be addressed before we can trigger Android Beam. First, we’ll work with the callback style of creating an NdefMessage .
Creating a Message
We can register callbacks with an NfcAdapter in the Activity’s OnCreate method. For example, assuming an NfcAdapter named mNfcAdapter is declared as a class variable in the Activity, we can write the following code to create the callback that will construct the message:
mNfcAdapter = NfcAdapter.GetDefaultAdapter (this); mNfcAdapter.SetNdefPushMessageCallback (this, this);
The Activity, which implements NfcAdapter.ICreateNdefMessageCallback , is passed to the SetNdefPushMessageCallback method above. When Android Beam is initiated, the system will call CreateNdefMessage , from which the Activity can construct an NdefMessage as shown below:
public NdefMessage CreateNdefMessage (NfcEvent evt) < DateTime time = DateTime.Now; var text = ("Beam me up!\n\n" + "Beam Time: " + time.ToString ("HH:mm:ss")); NdefMessage msg = new NdefMessage ( new NdefRecord[]< CreateMimeRecord ( "application/com.example.android.beam", Encoding.UTF8.GetBytes (text)) >); > >; return msg; > public NdefRecord CreateMimeRecord (String mimeType, byte [] payload)
Receiving a Message
On the receiving side, the system invokes an Intent with the ActionNdefDiscovered action, from which we can extract the NdefMessage as follows:
IParcelable [] rawMsgs = intent.GetParcelableArrayExtra (NfcAdapter.ExtraNdefMessages); NdefMessage msg = (NdefMessage) rawMsgs [0];
For a complete code example that uses Android Beam, shown running in the screenshot below, see the Android Beam demo in the Sample Gallery.
Related Links
Что такое Android Beam и как им пользоваться?
Через NFC можно передавать данные – а вы об этом даже не догадываетесь! Для этого существует функция Android Beam. О ней мы расскажем в данном тексте.
Если тебе 25 лет или больше, ты наверняка помнишь то чудесное время, когда данные с телефона на телефон передавали через ИК-порт и за преждевременный разрыв соединения можно было нарваться на ссору. Сейчас способов поделиться фото или понравившимся треком огромное количество, но некоторые из них используют тот же принцип — в частности, Android Beam. Чтобы обмениваться данными посредством этой функции, приходится подносить смартфоны друг к другу вплотную.
Содержание Показать
Что такое Android Beam?
Android Beam – функция, которая позволяет использовать NFC не только для оплаты товара в магазинах, но и для передачи информации. Это как Bluetooth, только гораздо быстрее. Чтобы кинуть фото или трек по Блютуз, приходится долго искать тумблер для активации опции, потом ждать сопряжения. С Андроид Бим достаточно поднести один аппарат к другому и подтвердить, что вы хотите поделиться информацией — на экране потенциального получателя сразу отобразится отправленный вами файл. Правда, при этом важно, чтобы на обоих аппаратах был включен NFC.
Первым функцию Android Beam получил Google Nexus, вышедший ещё в 2011 году.
Как узнать, есть ли на телефоне Android Beam?
Выполнить проверку довольно легко. Зайдите в «Настройки» смартфона и в блоке «Беспроводные сети» выберите вариант «Ещё» («More»).
Если среди вариантов есть NFC, тогда ниже наверняка будет и Android Beam. Правда, этот пункт останется затемнённым, пока модуль NFC не окажется активирован.
Любопытно то, что для передачи данных Андроид Бим использует именно Bluetooth – NFC отвечает только за коннект. Если бы данные передавались по NFC, это заняло бы уйму времени. Так что Android Beam на самом деле задействует сразу 2 модуля и берёт лучшее от каждого из них.
Как пользоваться Android Beam?
Android Beam позволяет передавать контент любого типа: видеоролики, веб-страницы, маршруты на карте, контакты, фото — и делать это без лишних манипуляций и кликов.
Предположим, что вы нашли интересную статью в интернете и хотите, чтобы ваш друг тоже её прочитал. В этом случае можно поделиться веб-страницей. Действуйте так:
- Убедитесь, что NFC на вашем телефоне включен.
- Поднесите свой телефон к телефону друга так, чтобы между двумя гаджетами было не больше 10 сантиметров.
- На экране вашего смартфона появится предложение поделиться данными. Просто подтвердите — и на экране гаджета вашего друга появится отправленная веб-страница.
Экраны обоих аппаратов должны быть разблокированы, иначе передать данные не получится.
S Beam – то же самое, что Android Beam?
Это разные вещи, хотя принцип действия одинаковый. Просто S Beam встречается только на Samsung, а Android Beam – на устройствах любых марок. Так что передавать данные с не-Самсунга на Самсунг можно лишь при помощи Андроид Бим, а с Самсунга на Самсунг – любым из двух способов.
Подводим итоги
Android Beam – пожалуй, одна из самых недооценённых функций «зеленого робота». Она присутствует на смартфонах с NFC с 2011 года, но многие юзеры до сих пор не понимают, какая от неё польза – и продолжают при передаче данных «колдовать» с облачными хранилищами и почтовыми аккаунтами. Андроид Бим – своеобразная комбинация Bluetooth и NFC, позволяющая «перебросить» файл с одного смартфона на другой всего за секунду. На телефонах без NFC, увы, аналогичной опции нет – «простым смертным» приходится обходиться «синим зубом».
Что такое Android Beam — обзор технологии
Android Beam — функция для передачи данных и файлов между двумя смартфонами с NFC-чипами. Объясним, как это работает и что необходимо для соединения девайсов.
Что такое Android Beam
Андроид Бим — это “синтез” двух технологий для транспортировки данных: NFC и Bluetooth. Первая используется для обнаружения аппарата и создания канала передачи информации. Вторая отвечает за отправку файлов. Почему это быстрее, чем использовать только НФС или Блютуз:
- Время соединения по NFC составляет 0,1 секунду, у BT — 6 секунд.
- Скорость передачи данных по НФС достигает 424 Кбит/с. В Bluetooth версии 4.0 этот показатель равен 1 Мбит/с, у 5.0 возрос до 2 Мбит/с.
Как итог, сочетание технологий компенсировало их недостатки.
Как узнать, есть ли эта технология в смартфоне
Андроид Бим реализован в большинстве устройств с NFC-чипом. Чтобы проверить наличие функции:
- Откройте «Настройки» устройства.
- Проследуйте к категории «Сети».
- Откройте «Ещё» или «Дополнительно».
- Включите технологию, активировав тумблер.
- Если таковой пункт в меню отсутствует — в смартфоне нет беспроводного модуля NFC, и он не поддерживает указанную функцию.
В зависимости от прошивки, Бим становится активной автоматически, после активации НФС. На моделях от разных брендов, вместо Android может значиться название компании: Huawei. Honor, Meizu.
На смартфонах от Samsung реализована фирменная технология S Beam. Она использует протокол передачи данных между девайсами бренда и не совместима с аппаратами других производителей.
Как пользоваться Android Beam
Применяют функцию в два этапа, о которых далее.
Активация
Чтобы включить технологию:
- Проследуйте в «Настройки».
- Разверните «Беспроводные сети» или в этой категории выберите еще. На других моделях выберите «Подключение устройства».
- В перечне доступных активируйте NFC.
- Откройте появившуюся вкладку «Android Beam».
- Переведите тумблер в активное положение.
Теперь передача данных будет активна при включенном НФС. Чтобы постоянно не переходить в настройки девайса:
- Разверните шторку для быстрой активации функции.
- Активируйте модуль, тапнув по его иконке, изображенной как «N».
Деактивация происходит в обратном порядке.
Обмен данными
Пользоваться Бимом можно, если:
- Оба устройства поддерживают технологию или ее аналог.
- Экраны девайсов включены, смартфоны сняты с блокировки.
- Расстояние между гаджетами составляет не больше 8-10 сантиметров. Можете приложить их вплотную задними крышками. Наличие чехла уменьшает предельное расстояние. При обмене информацией с планшетом, приложите телефон к зоне, обозначенной меткой «N».
Файлы передают следующим образом:
- Зайдите в диспетчер файлов или проводник.
- Выберите медиа для передачи.
- В дополнительном меню жмите по «Отправить».
- Среди перечня доступных вариантов, выберите «Android Beam».
- Поднесите девайс к другому устройству.
- Подтвердите прием данных на втором гаджете.
Аналогичным образом передают контакты из телефонной книги, сообщения или заметки.
Второй способ обмена информацией:
- Просматривая страницу в браузере или видео в YouTube, поднесите аппарат к другому телефону.
- Подтвердите принятие информации.
- На устройстве, принявшем ссылку, появится предложение открыть её с помощью обозревателя или фирменного приложения.
Преимущества и недостатки Андроид Бим
К плюсам относится:
- Моментальное сопряжение устройств. Не нужно включать поиск, обмениваться паролями или подключаться к одной точке доступа.
- Передача информации любого типа. Пользователи могут пересылать снимки, видео, музыку, телефонные номера и ссылки на веб-ресурсы.
- Универсальность. Передача данных работает между разными версиями ОС, начиная с Android4 KitKat. Исключением выступают фирменные разработки, использованные на устройствах от одного бренда, как в случае с S Beam.
- Безопасность. Даже при включенном модуле беспроводной связи, невозможно передать информацию, не разблокировав экран. Случайно подключиться к чужому телефону не получится из-за ограниченного расстояния для создания связи.
- Отсутствие NFC. Начиная с 2019 года модуль начал появляться в бюджетных смартфонах. До этого момента он встречался только в среднебюджетных и флагманских моделях. Причиной выступает малая востребованность технологии в Китае и необходимость платить за сертификацию девайса в Google Pay, при релизе гаджета на глобальном рынке.
- Скорость передачи. Посредством Bluetooth удобно обмениваться “небольшими” файлами, вроде скринов, ссылок, песен. Когда необходимо передать проект, фильм, видеоролик, удобнее использовать Wi-Fi Direct, скорость которого достигает 250 Мб/с. Зависит от установленного в аппарат чипа.
Что делать, если коннект не поддерживается
При отсутствии НФС, пользователю доступен обмен данными по:
- Bluetooth;
- Wi-Fi;
- Облачным хранилищам;
- Электронной почте.
Наличие NFC зависит от установленного в смартфон чипсета. Вендоры могут выпускать несколько версий одной модели с технологией и без неё. Это зависит от рынка, где продается устройство.
Android Beam сочетает 2 технологии, которые перекрывают собственные недостатки ключевыми преимуществами. Несмотря на удобство использования, такой вариант рассчитан на обмен “легкими” файлами: контакты, снимки, ссылки на контент.