HarmonyOS 鸿蒙Next系统蓝牙未开启时,是否有类似Android的系统弹窗,让用户直接打开,而不是手动
HarmonyOS 鸿蒙Next系统蓝牙未开启时,是否有类似Android的系统弹窗,让用户直接打开,而不是手动
系统蓝牙未开启时,是否有类似Android的系统弹窗,让用户直接打开,而不是手动
2 回复
鸿蒙目前也是有类似弹窗的,在页面出现时判断当前蓝牙状态,如果是关闭,则调用打开蓝牙的方法:
1、module.json5中配置蓝牙权限:
"requestPermissions": [
{
"name": "ohos.permission.ACCESS_BLUETOOTH",
"reason": "$string:access_bluetooth_permission",
"usedScene": {
"abilities": [
"EntryAbility"
],
"when":"inuse"
}
}
]
2、Index.ets中代码:
import { access } from '@kit.ConnectivityKit';
import { BusinessError } from '@kit.BasicServicesKit';
import { abilityAccessCtrl } from '@kit.AbilityKit';
import { promptAction } from '@kit.ArkUI';
@Entry
@Component
struct TextExample {
@State btState:string = ''
aboutToAppear(): void {
// 申请蓝牙权限
let atManager = abilityAccessCtrl.createAtManager();
try {
atManager.requestPermissionsFromUser(getContext(this), [
'ohos.permission.ACCESS_BLUETOOTH'
])
.then((data) => {
console.info(`[EntryAbility], data: ${JSON.stringify(data)}`);
this.enableBluetooth()
})
.catch((err: BusinessError) => {
console.info(`[EntryAbility], err: ${JSON.stringify(err)}`);
})
} catch (err) {
console.info(`[EntryAbility], catch err->${JSON.stringify(err)}`);
}
access.on('stateChange', (data) => {
let btStateMessage = '';
switch (data) {
case 0:
btStateMessage += 'STATE_OFF';
this.btState = '蓝牙已关闭'
promptAction.showToast({
message: '蓝牙已关闭',
duration: 2000
});
break;
case 2:
btStateMessage += 'STATE_ON';
this.btState = '蓝牙已打开'
promptAction.showToast({
message: '蓝牙已打开',
duration: 2000
});
break;
default:
btStateMessage += 'unknown status';
break;
}
console.info('bluetooth statues: ' + btStateMessage);
})
}
onPageShow(): void {
this.enableBluetooth()
}
//判断当前蓝牙状态,如果是关闭,则调用打开蓝牙的方法
enableBluetooth(){
try {
let state = access.getState();
if(state===0){
access.enableBluetooth();
}
} catch (err) {
console.error('errCode: ' + (err as BusinessError).code + ', errMessage: ' + (err as BusinessError).message);
}
}
build() {
Row() {
Column({space:20}) {
Text('测试:'+this.btState).fontSize(20)
Button('关闭蓝牙').onClick(()=>{
access.disableBluetooth()
})
}
.width('100%')
}
.height('100%')
}
}
HarmonyOS 鸿蒙Next系统蓝牙未开启时,有类似Android的系统弹窗提示用户直接打开。
在HarmonyOS鸿蒙Next系统中,当应用需要访问蓝牙功能而蓝牙未开启时,系统通常会弹出一个提示框,询问用户是否允许开启蓝牙。这与Android系统中的做法相似,旨在提升用户体验,减少用户手动开启蓝牙的步骤。用户只需点击确认,系统即可自动开启蓝牙功能,从而完成后续操作。
然而,这种弹窗的具体表现形式和触发条件可能因应用而异,也可能受到系统版本、设备型号等因素的影响。因此,在不同情况下,用户可能会遇到略有差异的弹窗提示。
如果开发者希望在HarmonyOS中实现类似功能,可以遵循系统提供的API和权限管理规范,确保在获取用户同意的前提下,优雅地引导用户开启蓝牙功能。
如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html