Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
缺少android方法:ScanRecord.parseFromBytes_Android_Bluetooth Lowenergy - Fatal编程技术网

缺少android方法:ScanRecord.parseFromBytes

缺少android方法:ScanRecord.parseFromBytes,android,bluetooth-lowenergy,Android,Bluetooth Lowenergy,我浏览了android 22的源代码,将代码更改为新的BLE扫描,并遇到了ScanRecord类。当我打开ScanRecord的源代码(sources/android-22/android/bluetooth/le/ScanRecord.java)时,我看到有一个parseFromBytes函数: /** * Parse scan record bytes to {@link ScanRecord}. * <p> * The format is defined in Bluet

我浏览了android 22的源代码,将代码更改为新的BLE扫描,并遇到了ScanRecord类。当我打开ScanRecord的源代码(sources/android-22/android/bluetooth/le/ScanRecord.java)时,我看到有一个parseFromBytes函数:

/**
 * Parse scan record bytes to {@link ScanRecord}.
 * <p>
 * The format is defined in Bluetooth 4.1 specification, Volume 3, Part C, Section 11 and 18.
 * <p>
 * All numerical multi-byte entities and values shall use little-endian <strong>byte</strong>
 * order.
 *
 * @param scanRecord The scan record of Bluetooth LE advertisement and/or scan response.
 * @hide
 */
 public static ScanRecord parseFromBytes(byte[] scanRecord)
/**
*将扫描记录字节解析为{@link ScanRecord}。
*
*蓝牙4.1规范第3卷C部分第11节和第18节定义了该格式。
*
*所有数字多字节实体和值应使用小尾数字节
*秩序。
*
*@param scanRecord蓝牙LE广告和/或扫描响应的扫描记录。
*@隐藏
*/
公共静态扫描记录parseFromBytes(字节[]扫描记录)
但是如果我尝试在代码中使用它,它就找不到函数。此外,如果我检查API,则根本不提及该函数

我使用的是Android Studio 1.3.1和CompileSDK版本22、MinSDK版本18、TargetSDK版本22和buildToolsVersion 22.0.1

我错过了什么?为什么我不能使用这个函数,尽管它是android源代码的一部分


感谢您的澄清。

ScanRecord类已添加到API级别21中。 您可以从 代码:


在该对象实例上,公共函数可用。

我遇到了同样的问题,希望使用ScanRecord.parseFromBytes。在谷歌搜索了很多次之后,我注意到它有一个标记“@hide”,它可以有效地向编译器隐藏它。看


我不太想使用反射,但我想访问ScanRecord中的字段(例如TxPower)

谢谢,但这并不能真正回答我的问题。我问为什么parseFromBytes函数即使声明为公共静态也无法访问,而不是我如何从ScanResult访问ScanRecord。谢谢,这就解释了这一点。我最终编写了自己的解析函数,因为我只对ScanRecord的一个字段感兴趣。
ScanCallback leScanCallback = new ScanCallback() {
    @Override
    public void onScanResult(int callbackType, ScanResult result) {
        ScanRecord record = result.getScanRecord();
    }
}