我正在编写一个Android BLE应用程序,我正在尝试获取某个特性的权限。我已经设法使用characteristic.getProperties()获取特征属性,并且它返回一个非零值,但是,当我使用getPermission()方法时,它返回0,即使我确信该特征具有PERMISSION_WRITE_ENCRYPTED_MITM(0x00000040) )。
这是一个代码片段
// properties
int properties = ch.getProperties();
DebugWrapper.infoMsg("properties: " + properties, TAG); //returns non-zero value
// permissions
int permissions = ch.getPermissions();
DebugWrapper.infoMsg("permissions: " + permissions, TAG); //returns zero value
难道我做错了什么?是否有特定的方法来获取该特性的权限,或者这是 android api 的问题吗?
我正在使用 API 19 并在 Samsung Galaxy Note 3 上测试我的程序。
我很感激任何帮助。
这看起来像是底层框架的问题。这个链接显示框架在发现远程设备上的服务/特征时执行的代码块。新的什么时候可以看到BluetoothGattCharacteristic
创建后,权限参数始终作为0
.
此外,即使稍后读取特征,也仅更新特征的值,而不会重置对象上的其他参数。
相反,Android 似乎试图处理某个设备上的身份验证/权限问题。反复试验基础。换句话说,框架总是尝试基本的读/写,如果由于身份验证原因失败,它会自动再次尝试请求 MITM 身份验证。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)