• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

ios - 从 iOS 设备上的 BLE 获取制造商数据

[复制链接]
菜鸟教程小白 发表于 2022-12-11 22:25:25 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

在我的 Xamarin.Android 应用中,我可以使用以下代码从 BLE 读取制造商数据:

public class CustomScanCallback : ScanCallback
{
    public override void OnScanResult([GeneratedEnum] ScanCallbackType callbackType, ScanResult result)
    {
        base.OnScanResult(callbackType, result);

        if (result.ScanRecord.ManufacturerSpecificData != null)
        {
            var dataByteResult = result.ScanRecord.GetManufacturerSpecificData(0xFFFE);

            if (dataByteResult != null)
            {
                Guid dataResult = new Guid(dataByteResult);

                if (dataResult.ToString() == "myUuid")
                {
                    // found the uuid from my UWP app
                }
            }
        }
    }
}

如何在 Xamarin.iOS 上做同样的事情?当外围设备被发现时,我有一个回调:

_cbCentralManager.DiscoveredPeripheral += CBCentralManager_DiscoveredPeripheral;

private void CBCentralManager_DiscoveredPeripheral(object sender, CBDiscoveredPeripheralEventArgs e)
{
    // how to find "myUuid" ?
}

并且尝试了很多方法来找到它,但找不到。 Swift/Obective-C 中的答案也会有所帮助,因为我可以将其翻译成 C#。

编辑

我用 CBAdvertisementDataManufacturerDataKey 键查看了广告数据参数,找到了值:

<06000109 2002aa4e 7e54b91f 2212c398 74eb0fe9 9fc3ecce 4ce76d8f aa>

看起来它是用十六进制格式编码的,但不要以为我要找的是我的 uuid...



Best Answer-推荐答案


十六进制代码是 NSData 你可以看到它来自 these文档。要将其转换为字符串,我将使用以下内容。

     NSData data = NSData.FromData(theValueFromDictionary);
     string uuidString = data.ToString();
     //Try this if the other line doesn't work. But string encoding should be UTF-16 (the default) or UTF-8
     //string uuidString = data.ToString(NSStringEncoding.UTF8);

如果那不是您想要的字符串,那么您可以尝试使用您正在使用的编码类型,但根据我的经验,苹果通常使用 UTF-8 在数据和字符串之间切换。 p>

也许 UUID 是这个字典中的另一个键。查看所有可用的 key here

关于ios - 从 iOS 设备上的 BLE 获取制造商数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55105741/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap