1 个回答

参考示例:

import { abilityAccessCtrl, common } from '@kit.AbilityKit';
import { access } from '@kit.ConnectivityKit';

function onReceiveEvent(data: access.BluetoothState) {
  console.log("bluetooth1111111111:" + data)
  try {
    console.log(typeof data.valueOf())
    // data===access.BluetoothState.STATE_OFF?this.isOpenBluetooth=0:this.isOpenBluetooth=2
    if (data === access.BluetoothState.STATE_OFF) {
      AppStorage.setOrCreate('isOpenBluetooth', 0)
      console.log('isOpenBluetooth:' + AppStorage.get('isOpenBluetooth'));
    } else {
      AppStorage.setOrCreate('isOpenBluetooth', 2)
      console.log('isOpenBluetooth:' + AppStorage.get('isOpenBluetooth'));
    }
  } catch (e) {
    console.error(`${e}`)
  }
}

@Entry
@Component
export struct BleDemo {
  @State message: string = 'Hello World'
  // @State isOpenBluetooth: number = 0;
  @StorageLink('isOpenBluetooth') isOpenBluetooth: number = 0;

  aboutToAppear(): void {
    let context = getContext() as common.UIAbilityContext;
    abilityAccessCtrl.createAtManager().requestPermissionsFromUser(context, ['ohos.permission.ACCESS_BLUETOOTH'])
    access.on('stateChange', onReceiveEvent)
    setInterval(() => {
      console.error(this.isOpenBluetooth.toString())
    }, 1000)
  }

  build() {
    Column() {
      Text(this.message)
        .fontSize(50)
    }
    .width('100%')
    .height('100%')
    .justifyContent(FlexAlign.Center)
    .onClick(() => {
      // console.log('isOpenBluetooth:'+AppStorage.get('isOpenBluetooth'));
    })
  }
}