2016-04-01 3 views
7

Я работаю с командой на кросс-платформенном приложении (Android и iOS).Multipeer Возможности подключения: iOS и Android

Данное приложение предназначено для обозначения концепции beacons и/или mesh networking или multipeer-connectivity. На данный момент наша команда использует Xamarin в качестве нашей среды разработки для создания единой базы кода.

После значительного исследования (очевидно не достаточно существенным), я только смог найти следующие ресурсы ..

http://altbeacon.org/

http://altbeacon.github.io/android-beacon-library

https://github.com/octoblu/meshblu

https://github.com/octoblu/MeshbluKit-iOS

https://github.com/octoblu/MeshbluKit-Android

https://github.com/CharruaLab/AltBeacon

https://blog.xamarin.com/play-find-the-monkey-with-ios-7-ibeacons/

Пара вопросов:

ли AltBeacon обеспечить связь между платформами?

Есть ли встроенный способ создания сетей Multipeer/Mesh в Xamarin/C#?

Требуется ли Estimote использовать наклейки/оценочные маяки или смартфон может служить маяком?

Я ищу:

  1. Способ установления соединения между прошивкой и Android устройств, когда пользователи не имеют Wi-Fi или подключение к «данных».

  2. По существу каждое устройство будет действовать как «маяк» друг к другу.

  3. Xamarin/C# является обязательным (хотя я услышу другие решения, если они убедительны)

  4. Этот сценарий:

Два лица, ходить разъехаться. Оба приложения работают на своих телефонах. У одного человека есть iphone, а у другого есть андроид. Их приложения работают в фоновом режиме (их телефоны находятся в карманах или в руках и заблокированы .. то есть не в «использовании»). Как индивидуумы проходят мимо друг друга их телефоны обнаруживать друг друга и отправить/получить текст от друга

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

«Вода фонтана работает должным образом»

Хотя Пользователь 2 использовал приложение на устройстве, чтобы сохранить заметку, содержащую следующую информацию ...

«Поручень немного поврежденные "


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

«фонтан воды работает правильно

перила слегка поврежден»


Возможные решения: TBD

Забракованные Решения: TBD

-

Текущие выводы: приложения существуют в настоящее время, такие как FireChat, ViewRanger (я верю), или, например Xamarin "Найти обезьяну". Apple использует iBeacons в своих магазинах, а другие используют AltBeacon для устройств Android. Я пришел к выводу, что это, безусловно, возможно, но я ищу, как выполнить его лучше всего, когда обе платформы служат в качестве этих маяков друг к другу.

+0

Какие выводы вы нашли? Действительно ли вы написали приложение с доказательством концепции? – t0mm13b

+0

Хорошие вопросы, я обновил свой пост. – captainrad

+0

На iOS устройство не может выступать в качестве маяка в фоновом режиме. Также iBeacons и т. Д. Рекламируют только 3 идентификатора. Они не обмениваются информацией. Вам нужно будет реализовать периферийные и центральные роли BLE. На iOS это через Core Bluetooth. Я не использую Xamarin, но я видел основные вопросы Bluetooth на нем, поэтому он поддерживается. Я предполагаю, что это также верно для Xamarin на android через соответствующие библиотеки Android, хотя я понятия не имею, насколько портативным будет код C#. Я подозреваю, что вам понадобится конкретная реализация для каждой платформы. – Paulw11

ответ

3

из описания ваш сценарий ИОС можно разбить его на 2 простых шага:

  1. Обнаружение близлежащих устройств
  2. Замена простых данных при обнаружении

Обязательно: это должно работать х-платформы IOS и Android

I верьте, что лучший способ приблизиться к этому - использовать BLE, который поддерживается обеими платформами (некоторые лучше других).

На iOS устройство может действовать как BLE Central и BLE Peripheral одновременно, на Android ситуация сложнее, поскольку не все устройства поддерживают состояние периферийного устройства BLE. Кроме того, стек Android BLE очень нестабилен.

Если ваш вариант использования имеет функцию, я бы предложил посмотреть Frameworks и библиотеки, которые могут достичь этого для вас, без необходимости создавать его с нуля.

Например: http://www.p2pkit.io, http://www.intromi.co и http://www.underdark.io или Google поблизости

Что касается использования родного кода с Xamarin вы можете просто создать мост (Binding: https://developer.xamarin.com/guides/ios/advanced_topics/binding_objective-c/).

Отказ от ответственности: Я работаю на Uepaa, разрабатывая p2pkit.io для Android и iOS.

+0

Удивительный! Фактически, начал использовать underdark, прежде чем вы разместили это. Теперь проверьте p2pkit.io и intromi.co. Я проверю это как ответ через пару дней, так как теперь он предоставляет мне самую полезную информацию. – captainrad

2

«То, что я ищу: А способ установить связь между прошивкой и Android устройствами, когда пользователи не имеют WiFi или„данные“. Подключения По существу каждое устройство будет выступать в качестве„маяка“друг к другу. Xamarin/C# является обязательным (хотя я услышу другие решения, если они убедительны)»

BLE (Bluetooth Low Energy) является то, что вы ищете, не только IBeacon части.

iBeacon построен поверх стека BLE, установив «конкретные данные изготовителя» (который сделал Apple) рекламного пакета BLE. iBeacon работает в режиме широковещательной передачи BLE и передает только три UUID данных, основные (16-разрядные), младшие (16-разрядные). Дополнительно RSSI (уровень сигнала передается/вычисляется).

Плохо то, что если вы используете местоположение ядра iOS или любую другую библиотеку iBeacon, она будет работать с UUID, major, minor, RSSI. Вы не можете передавать какие-либо дополнительные данные по стандартному протоколу iBeacon.

  1. Что вы ищете, это CoreBluetooth для iOS или Bluetooth Low Energy на Android.
  2. Вы, вероятно, придется создать свой собственный профиль с помощью ГАТТ/ATT BLE слоев (так как ни один из existing, вероятно, не привычка подходит к вашему запросу)
  3. Вам необходимо разработать приложение над BLE профилей в программу настройки

держать в вид, что BLE низкая мощность и низкая скорость связь, где вы можете ожидать (от моих тестов на разных платформах) до 20 байт каждого 25-30ms

Надеется, что это помогает ...

Смежные вопросы