使用SingleEntry(Android)时的配对问题

时间:2016-12-21 20:47:25

标签: xamarin visual-studio-2015 xamarin.android socketscan

Socket Mobile SDK文档指出套接字移动扫描程序必须位于" SPP"模式以使用SingleEntry示例。但是,似乎所有我测试过的Android手机都没有在初始配对的此模式下识别该设备。它确实显示在配对设备列表中,连接到它很好,但是在扫描发生时不会触发任何事件(OnDeviceArrival,OnDecodedData等)。

我只能通过以下步骤(确切地)获取SingleEntry示例应用程序以使用我的Socket Mobile S800:

  1. 确保扫描仪处于HID模式(默认)
  2. 在我的Android设备上,扫描可配对的设备。 (S800显示带键盘图标)
  3. 选择S800设备。 (S800在连接时发出蜂鸣声确认)
  4. 设备配对后,取消配对。
  5. 将S800模式更改为" SPP"通过扫描相应的代码(推荐模式与Xamarin SingleEntry示例一起使用)
  6. 与我的Android手机上的S800设备重新配对。 (S800图标现在是桌面而不是键盘)
  7. 打开"套接字EZ对"应用程序,使用蓝牙选择对,从列表中选择我的S800设备。
  8. 现在OnEcodedData回调在SingleEntry项目中触发。
  9. 什么是" Socket EZ Pair"应用程序这样做,我应该在我的代码中正确配对设备,在" SPP"模式?

    是否有更好的跨平台蓝牙扫描解决方案?我对OnScan(OnDecodedData)事件特别感兴趣...

1 个答案:

答案 0 :(得分:1)

更新

解释实际上非常简单。 SingleEntry Xamarin.Android应用程序不处理为ScanAPI配置扫描程序。

正如您所说,配对扫描仪后,您需要使用EZ Pair,才能让您的应用识别扫描仪。这是因为当您使用蓝牙设置配对扫描仪时,它会创建与扫描仪的传出连接,但ScanAPI会侦听传入连接。 EZ Pair为您提供配对的蓝牙设备列表,它连接到您选择的设备并配置该扫描仪以在关闭连接之前连接回来。

SingleEntry Android示例应用程序包含EZ Pair逻辑,但Xamarin示例不包含。

但是,一旦您使用EZ Pair配置扫描仪进行连接,您应该在未经修改的SingleEntry Xamarin.Android示例应用程序中接收设备到达和解码数据通知。

原始答案

不是解决方案,但很适合检查

运行时权限在Android 6.0中引入,SingleEntry尚未更新以检查所需的权限。不幸的是,设置目标框架的文件没有签入git,因此示例应用程序的新克隆现在的目标是比SingleEntry设计的新版本。

如果您打开设置>应用>单次进入>权限并启用存储权限,然后它应该开始工作。

真正的解决方法是在您的应用程序中调用WRITE_EXTERNAL_STORAGE之前检查BLUETOOTHScanApiHelper.Open()权限。