多种连接:iOS和Android

时间:2016-04-01 21:19:40

标签: c# android ios xamarin altbeacon

我正在跨平台应用(Android和iOS)上与团队合作。

此应用旨在使用beacons和/或mesh networkingmultipeer-connectivity的概念。目前,我们的团队正在使用Xamarin作为创建单一代码库的IDE。

经过重大研究(显然不够重要),我只能找到以下资源..

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是否允许平台之间的通信?

是否有内置的方法在Xamarin / C#中建立Multipeer / Mesh网络?

Estimote是否需要使用贴纸/ estimote信标,或者智能手机是否可以作为灯塔使用?

我在寻找什么:

  1. 当用户没有WiFi或“数据”连接时,在iOS和Android设备之间建立连接的方法。

  2. 基本上每个设备都会充当彼此的“灯塔”。

  3. Xamarin / C#是必须的(如果他们有说服力,我会听到其他解决方案)

  4. 此方案:

  5.   

    两个人走过彼此。两者都在他们的手机上运行应用程序。一个人有一个iPhone,另一个人有一个机器人。他们的应用程序在后台运行(他们的手机放在口袋或手中并被锁定..意思不是“使用”)。当个人走过彼此时,他们的手机互相检测并发送/接收彼此的文本

    在此活动开始之前,用户1 使用此应用程序保存包含以下信息的备注...

      

    “喷泉工作正常”

    用户2 使用其设备上的应用程序保存包含以下信息的备注...

      

    “扶手轻微受损”

    用户相互通过后,下次他们打开他们的应用时,他们会看到一个更新的笔记阅读......

      

    “喷泉工作正常

         

    扶手轻微损坏“

    可能的解决方案: TBD

    拒绝解决方案:待定

    -

    目前的结论: 目前存在的应用程序,如FireChat,ViewRanger(我相信)或Xamarin示例“Find the Monkey”。 Apple在他们的商店使用iBeacons,其他人使用AltBeacon用于Android设备。我已经得出结论,这肯定是可能的,但我正在寻找如何最好地执行它,同时让两个平台充当彼此的信标。

2 个答案:

答案 0 :(得分:4)

根据您的方案的描述,可以将其分解为两个简单的步骤:

  1. 发现附近的设备
  2. 发现时交换简单数据
  3. 必需:这应该适用于x-platform iOS和Android

    我认为解决这个问题的最佳方法是使用BLE,这两个平台都支持BLE(有些比其他平台更好)。

    在iOS上,设备可以同时充当BLE中心和BLE外设,在Android上情况更复杂,因为并非所有设备都支持BLE外设状态。 Android BLE堆栈也非常不稳定。

    如果您的用例是功能驱动的,我建议您查看可以为您实现此功能的Frameworks和Libraries,而无需您从头开始构建它。

    例如: http://www.p2pkit.iohttp://www.intromi.cohttp://www.underdark.io或谷歌附近

    关于在Xamarin中使用本机代码,您可以简单地创建一个桥(绑定:https://developer.xamarin.com/guides/ios/advanced_topics/binding_objective-c/)。

    免责声明:我为Uepaa工作,为Android和iOS开发p2pkit.io。

答案 1 :(得分:2)

“我在找什么: 当用户没有WiFi或“数据”连接时,在iOS和Android设备之间建立连接的方法。 基本上每个设备将充当彼此的“信标”。 Xamarin / C#是必须的(虽然如果他们有说服力,我会听到其他解决方案)“

BLE(蓝牙低功耗)正是您在寻找的,而不仅仅是iBeacon的一部分。

iBeacon建立在BLE堆栈之上,通过设置BLE广告包的“制造商特定数据”(Apple所做的)。 iBeacon在BLE“广播”模式下工作,它只传输三个数据字段UUID,主要(16位),次要(16位)。另外还有RSSI(传输/计算信号强度)。

糟糕的是,如果您使用iOS核心位置或任何其他iBeacon库,它将与UUID,主要,次要,RSSI一起使用。 您无法通过标准iBeacon协议传输任何其他数据。

  1. 您正在寻找的是适用于iOS的CoreBluetooth或Android上的蓝牙低功耗库。
  2. 您可能需要使用GATT / ATT BLE图层创建自定义配置文件(因为existing没有一个可能不适合您的请求)
  3. 您需要通过BLE配置文件设置开发应用
  4. 请记住,BLE是低功耗和低速通信,您可以期望(从我在许多不同平台上的测试)每25-30ms最多20个字节

    希望这会有所帮助......