HarmonyOS 鸿蒙Next 蓝牙扫描设备必须要MANAGE_BLUETOOTH权限吗?
HarmonyOS 鸿蒙Next 蓝牙扫描设备必须要MANAGE_BLUETOOTH权限吗?
https://blog.51cto.com/harmonyos/6205722
按照这篇教程,做蓝牙设备扫描,发现教程中,声明了MANAGE_BLUETOOTH这个权限,但是一旦声明了这个权限,就会出现Failure[MSG_ERR_INSTALL_GRANT_REQUEST_PERMISSIONS_FAILED]不能安装的问题。查了相关资料,是因为这个权限是ACL权限,需要到应用商店进行一系列的复杂申请等一天才能使用,可是我只是写一个技术验证demo,就要申请应用商店吗?
另外,我选择忽略这个权限,不去声明,同样无法扫描。出现了这样的错误:startBLEScan ERROR= Error: BussinessError 401: Invalid parameter.
代码如下,请问问题出在哪里?蓝牙的相关文档真的是太难找了,只能来论坛求助了。
import bluetooth from '@ohos.bluetoothManager';
const TAG = "Index-ets"
@Entry
@Component
struct Index {
@State message: string = 'Hello World'
async aboutToAppear() {
console.log(TAG, "aboutToAppear ")
bluetooth.BLE.on("BLEDeviceFind", (result) => {
console.log(TAG, "aboutToAppear BLEDeviceFind result=", result)
})
try {
bluetooth.BLE.startBLEScan(
[
{
deviceId: null,
name: "HONOR 20 PRO",
serviceUuid: null
}
],
{
interval: 0,
dutyMode: bluetooth.ScanDuty.SCAN_MODE_BALANCED,
matchMode: bluetooth.MatchMode.MATCH_MODE_STICKY
}
)
} catch (e) {
console.error(TAG, "aboutToAppear startBLEScan ERROR=", e)
}
}
build() {
Row() {
Column() {
Text(this.message)
.fontSize(50)
.fontWeight(FontWeight.Bold)
Button('Ble', { type: ButtonType.Normal, stateEffect: true })
.padding(8)
.onClick(() => {
})
}
.width('100%')
}
.height('100%')
}
}
请问不申请 MANAGE_BLUETOOTH 权限是怎么扫描的?
有要学HarmonyOS AI的同学吗,联系我:https://www.itying.com/goods-1206.html
编译错误并不会出现,Failure[MSG_ERR_INSTALL_GRANT_REQUEST_PERMISSIONS_FAILED]这个错误是因为声明了Manage_bluetooth权限,这是一个system_basic权限,需要一些额外的处理。 我这里的问题是,如果不声明这个权限,执行bluetooth.BLE.startBLEScan时,会出现BussinessError 401: Invalid parameter错误
HarmonyOS进行蓝牙扫描设备时,不一定需要MANAGE_BLUETOOTH权限。实际上,蓝牙扫描通常需要的是如ACCESS_BLUETOOTH、BLUETOOTH、BLUETOOTH_ADMIN等权限,这些权限用于访问蓝牙功能和设备信息。MANAGE_BLUETOOTH权限可能涉及更高层次的蓝牙管理操作,不是常规蓝牙扫描所必需的。
确保在项目的配置文件中(如config.json或AndroidManifest.xml)正确声明了所需的蓝牙权限。如果问题依旧没法解决,请加我微信,我的微信是itying888。