42 lines
1.4 KiB
Plaintext
42 lines
1.4 KiB
Plaintext
#import <Foundation/Foundation.h>
|
|
#import <CoreBluetooth/CoreBluetooth.h>
|
|
|
|
// 全局 CBCentralManager 用于检查蓝牙状态
|
|
static CBCentralManager *centralManager = nil;
|
|
|
|
extern "C" {
|
|
// 获取蓝牙状态
|
|
// 0 = Unknown, 1 = Resetting, 2 = Unsupported, 3 = Unauthorized, 4 = PoweredOff, 5 = PoweredOn
|
|
int GetBluetoothStateIOS() {
|
|
if (centralManager == nil) {
|
|
centralManager = [[CBCentralManager alloc] initWithDelegate:nil queue:nil options:@{CBCentralManagerOptionShowPowerAlertKey: @NO}];
|
|
}
|
|
|
|
switch (centralManager.state) {
|
|
case CBManagerStateUnknown:
|
|
return 0;
|
|
case CBManagerStateResetting:
|
|
return 1;
|
|
case CBManagerStateUnsupported:
|
|
return 2;
|
|
case CBManagerStateUnauthorized:
|
|
return 3;
|
|
case CBManagerStatePoweredOff:
|
|
return 4;
|
|
case CBManagerStatePoweredOn:
|
|
return 5;
|
|
default:
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
// 打开蓝牙设置页面
|
|
void OpenBluetoothSettingsIOS() {
|
|
// iOS 10+ 使用 UIApplicationOpenSettingsURLString
|
|
NSURL *settingsURL = [NSURL URLWithString:UIApplicationOpenSettingsURLString];
|
|
if ([[UIApplication sharedApplication] canOpenURL:settingsURL]) {
|
|
[[UIApplication sharedApplication] openURL:settingsURL options:@{} completionHandler:nil];
|
|
}
|
|
}
|
|
}
|