当前位置: 首页 > 知识库问答 >
问题:

如何在android设备上读取信标的UDID、大调、小调?

倪培
2023-03-14

我正在尝试为Android开发一个可扩展的应用程序。

是任何方式,我可以检测和读取UDID,主要,次要的信标在Android设备上?

我已经阅读了RadiusNetworks android ibeacon服务,但我不明白为什么:

major = (256 * (0xFF & paramArrayOfByte[(i + 20)]) +
 (0xFF & paramArrayOfByte[(i + 21)]));

哪个paramaryOfByteLeScanCallback字节[]扫描记录

共有2个答案

淳于宏伯
2023-03-14
  1. scanRecord解析为AD结构列表

使用nv bluetooth,您可以按如下方式提取iBeacon。

public void onLeScan(BluetoothDevice device, int rssi, byte[] scanRecord)
{
    // Parse the payload of the advertising packet.
    List<ADStructure> structures =
        ADPayloadParser.getInstance().parse(scanRecord);

    // For each AD structure contained in the advertising packet.
    for (ADStructure structure : structures)
    {
        if (structure instanceof IBeacon)
        {
            // iBeacon was found.
            IBeacon iBeacon = (IBeacon)structure;

            // Proximity UUID, major number, minor number and power.
            UUID uuid = iBeacon.getUUID();
            int major = iBeacon.getMajor();
            int minor = iBeacon.getMinor();
            int power = iBeacon.getPower();

            ........

详见“iBeacon作为一种广告结构”。

张亦
2023-03-14

当您从蓝牙适配器获取字节[]扫描记录时。LeScanCallback,它将包括蓝牙LE头,根据iBeacon的类型,其长度可以是可变的。

由于标题长度可变,指示iBeacon播发的四个字节(4c 00 02 15)可以从第三个字节(scanRecord[2])到第六个字节(scanRecord[5])的任意位置开始。在最新的代码中,Android iBeacon库在scanRecord中找到4C00 02 15的索引位置,并将其称为startByte。其他所有东西都位于相对于该起始字节的固定位置。

 类似资料:
  • 嗨,我猜我在问一个愚蠢的问题,但我真的对avd的事情感到困惑。首先,我想在三星Galaxy Ace上测试我的应用程序,因为我找不到该设备的实际模拟器。是否有在线可用的实际设备模拟器??? 我将其皮肤添加到AVD中,并使用以下配置: 目标:API 8级 SD卡: size: 512mb 皮肤:内置:HVGA 硬件:抽象LCD密度:160 在启动AVD的过程中,我选中了“缩放显示到真实大小”,并设置

  • 问题内容: 我的程序针对Android 1.5。我想检索有关设备本身的系统信息。通过搜索API,我发现很少有有用的类。到目前为止,我发现最好的是该类和一些系统属性。 我希望能够获得如下信息:设备上的内存总量,可用内存量(我不知道该类是否是主动给我的,因为它专门指的是JVM可用的内存)。有关处理器的信息。 这些信息是否可用?如果可以,我在哪里可以找到它? 问题答案: “内存总量”是毫无意义的(例如,

  • 我一直试图创建一个带有文本的浮动操作按钮,但我无法: 设置按钮中文本的颜色 当我把文本做得太小时,它会变得模糊。 我下面的尝试不起作用。 我可能做错了什么?

  • 问题内容: 我创建了一个UICollectionView,以便可以将视图排列成整齐的列。我希望在宽度大于500像素的设备上有一列。 为了实现这一点,我创建了以下功能: 这在第一次加载时可以按预期工作,但是当我旋转设备时,计算并不总是再次发生,并且视图也不一定总是按预期重绘。这是设备旋转时的代码: 我假设我忘记重画了一些东西,但是我不确定是什么。非常感谢任何想法! 问题答案: 您可以使用。这个问题应

  • 我正在尝试从连接到主机模式下的Android手机的USB设备中获取一些数据。我可以发送数据到它,但读取失败。 我一直从方法获得,它指示某种错误,它总是超时。也许问题来自于连接配置,我试了几次(读作:试错),没有一次奏效,令人惊讶的是,我不需要任何配置来发送数据到设备。 编辑 还必须注意的是,我使用的电缆是micro-USB到micro-USB的,它只能以一种方式工作,即只有当插头A连接到电话和插头

  • 我运行的是Android Studio版本 Android Studio大黄蜂2021.1.1金丝雀11和Android Studio北极狐2020.3.1补丁2 在我的Mac M1上。在这两个版本中,当我试图在设备上调试时, 我试过了 无效并重新启动 重新启动了我的计算机, 重新启动设备 重新启动ADB服务器。 但仍然有同样的问题。 你知道这里发生了什么吗?