munim-bluetooth 0.3.26 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +16 -0
- package/README.md +476 -74
- package/android/gradle.properties +2 -2
- package/android/src/main/AndroidManifest.xml +3 -1
- package/android/src/main/cpp/cpp-adapter.cpp +4 -1
- package/android/src/main/java/com/munimbluetooth/BluetoothPermissionUtils.kt +40 -0
- package/android/src/main/java/com/munimbluetooth/HybridMunimBluetooth.kt +2116 -217
- package/android/src/main/java/com/munimbluetooth/MunimBluetoothBackgroundService.kt +591 -56
- package/app.plugin.js +155 -0
- package/ios/HybridMunimBluetooth.swift +2123 -298
- package/ios/MunimBluetoothEventEmitter.swift +68 -8
- package/lib/commonjs/index.js +272 -11
- package/lib/commonjs/index.js.map +1 -1
- package/lib/module/index.js +243 -11
- package/lib/module/index.js.map +1 -1
- package/lib/typescript/src/index.d.ts +310 -7
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/specs/munim-bluetooth.nitro.d.ts +219 -5
- package/lib/typescript/src/specs/munim-bluetooth.nitro.d.ts.map +1 -1
- package/nitro.json +9 -3
- package/nitrogen/generated/android/c++/JAdvertisingDataTypes.hpp +96 -96
- package/nitrogen/generated/android/c++/JAdvertisingOptions.hpp +8 -8
- package/nitrogen/generated/android/c++/JBackgroundSessionOptions.hpp +8 -8
- package/nitrogen/generated/android/c++/JBluetoothCapabilities.hpp +105 -0
- package/nitrogen/generated/android/c++/JBluetoothPhy.hpp +61 -0
- package/nitrogen/generated/android/c++/JBluetoothPhyOption.hpp +61 -0
- package/nitrogen/generated/android/c++/JBondState.hpp +64 -0
- package/nitrogen/generated/android/c++/JDescriptorValue.hpp +69 -0
- package/nitrogen/generated/android/c++/JExtendedAdvertisingOptions.hpp +131 -0
- package/nitrogen/generated/android/c++/JGATTCharacteristic.hpp +35 -11
- package/nitrogen/generated/android/c++/JGATTDescriptor.hpp +85 -0
- package/nitrogen/generated/android/c++/JGATTService.hpp +33 -9
- package/nitrogen/generated/android/c++/JHybridMunimBluetoothSpec.cpp +422 -12
- package/nitrogen/generated/android/c++/JHybridMunimBluetoothSpec.hpp +29 -0
- package/nitrogen/generated/android/c++/JL2CAPChannel.hpp +66 -0
- package/nitrogen/generated/android/c++/JMultipeerDiscoveryInfoEntry.hpp +61 -0
- package/nitrogen/generated/android/c++/JMultipeerEncryptionPreference.hpp +61 -0
- package/nitrogen/generated/android/c++/JMultipeerPeer.hpp +93 -0
- package/nitrogen/generated/android/c++/JMultipeerPeerState.hpp +61 -0
- package/nitrogen/generated/android/c++/JMultipeerSessionOptions.hpp +105 -0
- package/nitrogen/generated/android/c++/JPhyStatus.hpp +62 -0
- package/nitrogen/generated/android/c++/JScanOptions.hpp +8 -8
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/munimbluetooth/AdvertisingDataTypes.kt +47 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/munimbluetooth/AdvertisingOptions.kt +19 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/munimbluetooth/BackgroundSessionOptions.kt +27 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/munimbluetooth/BluetoothCapabilities.kt +111 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/munimbluetooth/BluetoothPhy.kt +24 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/munimbluetooth/BluetoothPhyOption.kt +24 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/munimbluetooth/BondState.kt +25 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/munimbluetooth/CharacteristicValue.kt +17 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/munimbluetooth/DescriptorValue.kt +66 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/munimbluetooth/ExtendedAdvertisingOptions.kt +111 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/munimbluetooth/GATTCharacteristic.kt +25 -3
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/munimbluetooth/GATTDescriptor.kt +61 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/munimbluetooth/GATTService.kt +23 -3
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/munimbluetooth/HybridMunimBluetoothSpec.kt +138 -22
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/munimbluetooth/L2CAPChannel.kt +61 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/munimbluetooth/MultipeerDiscoveryInfoEntry.kt +56 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/munimbluetooth/MultipeerEncryptionPreference.kt +24 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/munimbluetooth/MultipeerPeer.kt +66 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/munimbluetooth/MultipeerPeerState.kt +24 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/munimbluetooth/MultipeerSessionOptions.kt +81 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/munimbluetooth/PhyStatus.kt +56 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/munimbluetooth/ScanOptions.kt +17 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/munimbluetooth/ServiceDataEntry.kt +15 -0
- package/nitrogen/generated/ios/MunimBluetooth+autolinking.rb +2 -0
- package/nitrogen/generated/ios/MunimBluetooth-Swift-Cxx-Bridge.cpp +61 -5
- package/nitrogen/generated/ios/MunimBluetooth-Swift-Cxx-Bridge.hpp +494 -49
- package/nitrogen/generated/ios/MunimBluetooth-Swift-Cxx-Umbrella.hpp +42 -0
- package/nitrogen/generated/ios/c++/HybridMunimBluetoothSpecSwift.hpp +254 -0
- package/nitrogen/generated/ios/swift/BluetoothCapabilities.swift +89 -0
- package/nitrogen/generated/ios/swift/BluetoothPhy.swift +44 -0
- package/nitrogen/generated/ios/swift/BluetoothPhyOption.swift +44 -0
- package/nitrogen/generated/ios/swift/BondState.swift +48 -0
- package/nitrogen/generated/ios/swift/DescriptorValue.swift +44 -0
- package/nitrogen/generated/ios/swift/ExtendedAdvertisingOptions.swift +243 -0
- package/nitrogen/generated/ios/swift/Func_void_BluetoothCapabilities.swift +46 -0
- package/nitrogen/generated/ios/swift/Func_void_BondState.swift +46 -0
- package/nitrogen/generated/ios/swift/Func_void_DescriptorValue.swift +46 -0
- package/nitrogen/generated/ios/swift/Func_void_L2CAPChannel.swift +46 -0
- package/nitrogen/generated/ios/swift/Func_void_PhyStatus.swift +46 -0
- package/nitrogen/generated/ios/swift/Func_void_std__string.swift +46 -0
- package/nitrogen/generated/ios/swift/Func_void_std__vector_MultipeerPeer_.swift +46 -0
- package/nitrogen/generated/ios/swift/GATTCharacteristic.swift +25 -1
- package/nitrogen/generated/ios/swift/GATTDescriptor.swift +71 -0
- package/nitrogen/generated/ios/swift/GATTService.swift +25 -1
- package/nitrogen/generated/ios/swift/HybridMunimBluetoothSpec.swift +29 -0
- package/nitrogen/generated/ios/swift/HybridMunimBluetoothSpec_cxx.swift +556 -23
- package/nitrogen/generated/ios/swift/L2CAPChannel.swift +52 -0
- package/nitrogen/generated/ios/swift/MultipeerDiscoveryInfoEntry.swift +34 -0
- package/nitrogen/generated/ios/swift/MultipeerEncryptionPreference.swift +44 -0
- package/nitrogen/generated/ios/swift/MultipeerPeer.swift +63 -0
- package/nitrogen/generated/ios/swift/MultipeerPeerState.swift +44 -0
- package/nitrogen/generated/ios/swift/MultipeerSessionOptions.swift +136 -0
- package/nitrogen/generated/ios/swift/PhyStatus.swift +34 -0
- package/nitrogen/generated/shared/c++/BluetoothCapabilities.hpp +131 -0
- package/nitrogen/generated/shared/c++/BluetoothPhy.hpp +80 -0
- package/nitrogen/generated/shared/c++/BluetoothPhyOption.hpp +80 -0
- package/nitrogen/generated/shared/c++/BondState.hpp +84 -0
- package/nitrogen/generated/shared/c++/DescriptorValue.hpp +95 -0
- package/nitrogen/generated/shared/c++/ExtendedAdvertisingOptions.hpp +138 -0
- package/nitrogen/generated/shared/c++/GATTCharacteristic.hpp +9 -3
- package/nitrogen/generated/shared/c++/GATTDescriptor.hpp +93 -0
- package/nitrogen/generated/shared/c++/GATTService.hpp +7 -2
- package/nitrogen/generated/shared/c++/HybridMunimBluetoothSpec.cpp +29 -0
- package/nitrogen/generated/shared/c++/HybridMunimBluetoothSpec.hpp +61 -2
- package/nitrogen/generated/shared/c++/L2CAPChannel.hpp +92 -0
- package/nitrogen/generated/shared/c++/MultipeerDiscoveryInfoEntry.hpp +87 -0
- package/nitrogen/generated/shared/c++/MultipeerEncryptionPreference.hpp +80 -0
- package/nitrogen/generated/shared/c++/MultipeerPeer.hpp +102 -0
- package/nitrogen/generated/shared/c++/MultipeerPeerState.hpp +80 -0
- package/nitrogen/generated/shared/c++/MultipeerSessionOptions.hpp +114 -0
- package/nitrogen/generated/shared/c++/PhyStatus.hpp +88 -0
- package/package.json +22 -11
- package/src/index.ts +416 -31
- package/src/specs/munim-bluetooth.nitro.ts +298 -14
|
@@ -10,29 +10,89 @@ import React
|
|
|
10
10
|
|
|
11
11
|
@objc(MunimBluetoothEventEmitter)
|
|
12
12
|
class MunimBluetoothEventEmitter: RCTEventEmitter {
|
|
13
|
-
|
|
13
|
+
|
|
14
14
|
public static var shared: MunimBluetoothEventEmitter?
|
|
15
|
-
|
|
15
|
+
private static var pendingEvents: [(name: String, body: [String: Any])] = []
|
|
16
|
+
|
|
16
17
|
override init() {
|
|
17
18
|
super.init()
|
|
18
19
|
MunimBluetoothEventEmitter.shared = self
|
|
20
|
+
MunimBluetoothEventEmitter.flushPendingEvents()
|
|
19
21
|
}
|
|
20
|
-
|
|
22
|
+
|
|
21
23
|
override func supportedEvents() -> [String]! {
|
|
22
24
|
return [
|
|
23
25
|
"deviceFound",
|
|
24
26
|
"onDeviceFound",
|
|
25
27
|
"scanResult",
|
|
28
|
+
"scanFailed",
|
|
29
|
+
"advertisingStartFailed",
|
|
30
|
+
"advertisingStarted",
|
|
31
|
+
"deviceConnected",
|
|
32
|
+
"deviceDisconnected",
|
|
26
33
|
"connectionStateChanged",
|
|
27
|
-
"
|
|
34
|
+
"servicesDiscovered",
|
|
35
|
+
"characteristicValueChanged",
|
|
36
|
+
"peripheralReadRequest",
|
|
37
|
+
"peripheralWriteRequest",
|
|
38
|
+
"peripheralSubscribed",
|
|
39
|
+
"peripheralUnsubscribed",
|
|
40
|
+
"rssiUpdated",
|
|
41
|
+
"backgroundSessionStarted",
|
|
42
|
+
"backgroundSessionStopped",
|
|
43
|
+
"backgroundSessionRestored",
|
|
44
|
+
"backgroundSessionStartFailed",
|
|
45
|
+
"multipeerStarted",
|
|
46
|
+
"multipeerStopped",
|
|
47
|
+
"multipeerStartFailed",
|
|
48
|
+
"multipeerPeerFound",
|
|
49
|
+
"multipeerPeerLost",
|
|
50
|
+
"multipeerPeerStateChanged",
|
|
51
|
+
"multipeerMessageReceived"
|
|
28
52
|
]
|
|
29
53
|
}
|
|
30
|
-
|
|
54
|
+
|
|
31
55
|
override static func requiresMainQueueSetup() -> Bool {
|
|
32
|
-
return
|
|
56
|
+
return true
|
|
33
57
|
}
|
|
34
|
-
|
|
58
|
+
|
|
35
59
|
func emitDeviceFound(_ deviceData: [String: Any]) {
|
|
36
|
-
|
|
60
|
+
emitOnMain("deviceFound", body: deviceData)
|
|
61
|
+
emitOnMain("onDeviceFound", body: deviceData)
|
|
62
|
+
emitOnMain("scanResult", body: deviceData)
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
func emit(_ eventName: String, body: [String: Any]) {
|
|
66
|
+
emitOnMain(eventName, body: body)
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
static func emitOrQueue(_ eventName: String, body: [String: Any]) {
|
|
70
|
+
guard let shared else {
|
|
71
|
+
pendingEvents.append((name: eventName, body: body))
|
|
72
|
+
return
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
shared.emit(eventName, body: body)
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
private static func flushPendingEvents() {
|
|
79
|
+
guard let shared, !pendingEvents.isEmpty else {
|
|
80
|
+
return
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
let events = pendingEvents
|
|
84
|
+
pendingEvents.removeAll()
|
|
85
|
+
events.forEach { shared.emit($0.name, body: $0.body) }
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
private func emitOnMain(_ eventName: String, body: [String: Any]) {
|
|
89
|
+
if Thread.isMainThread {
|
|
90
|
+
sendEvent(withName: eventName, body: body)
|
|
91
|
+
return
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
DispatchQueue.main.async { [weak self] in
|
|
95
|
+
self?.sendEvent(withName: eventName, body: body)
|
|
96
|
+
}
|
|
37
97
|
}
|
|
38
98
|
}
|
package/lib/commonjs/index.js
CHANGED
|
@@ -6,28 +6,57 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.addDeviceFoundListener = addDeviceFoundListener;
|
|
7
7
|
exports.addEventListener = addEventListener;
|
|
8
8
|
exports.addListener = addListener;
|
|
9
|
+
exports.closeL2CAPChannel = closeL2CAPChannel;
|
|
9
10
|
exports.connect = connect;
|
|
11
|
+
exports.connectClassic = connectClassic;
|
|
12
|
+
exports.createBond = createBond;
|
|
10
13
|
exports.default = void 0;
|
|
11
14
|
exports.disconnect = disconnect;
|
|
15
|
+
exports.disconnectClassic = disconnectClassic;
|
|
12
16
|
exports.discoverServices = discoverServices;
|
|
13
17
|
exports.getAdvertisingData = getAdvertisingData;
|
|
18
|
+
exports.getBondState = getBondState;
|
|
19
|
+
exports.getCapabilities = getCapabilities;
|
|
14
20
|
exports.getConnectedDevices = getConnectedDevices;
|
|
21
|
+
exports.getMultipeerPeers = getMultipeerPeers;
|
|
22
|
+
exports.inviteMultipeerPeer = inviteMultipeerPeer;
|
|
15
23
|
exports.isBluetoothEnabled = isBluetoothEnabled;
|
|
24
|
+
exports.openL2CAPChannel = openL2CAPChannel;
|
|
25
|
+
exports.publishL2CAPChannel = publishL2CAPChannel;
|
|
16
26
|
exports.readCharacteristic = readCharacteristic;
|
|
27
|
+
exports.readDescriptor = readDescriptor;
|
|
28
|
+
exports.readPhy = readPhy;
|
|
17
29
|
exports.readRSSI = readRSSI;
|
|
30
|
+
exports.removeBond = removeBond;
|
|
18
31
|
exports.removeListeners = removeListeners;
|
|
19
32
|
exports.requestBluetoothPermission = requestBluetoothPermission;
|
|
33
|
+
exports.requestMTU = requestMTU;
|
|
34
|
+
exports.sendL2CAPData = sendL2CAPData;
|
|
35
|
+
exports.sendMultipeerMessage = sendMultipeerMessage;
|
|
36
|
+
exports.setPreferredPhy = setPreferredPhy;
|
|
20
37
|
exports.setServices = setServices;
|
|
21
38
|
exports.startAdvertising = startAdvertising;
|
|
22
39
|
exports.startBackgroundSession = startBackgroundSession;
|
|
40
|
+
exports.startClassicScan = startClassicScan;
|
|
41
|
+
exports.startClassicServer = startClassicServer;
|
|
42
|
+
exports.startExtendedAdvertising = startExtendedAdvertising;
|
|
43
|
+
exports.startMultipeerSession = startMultipeerSession;
|
|
23
44
|
exports.startScan = startScan;
|
|
24
45
|
exports.stopAdvertising = stopAdvertising;
|
|
25
46
|
exports.stopBackgroundSession = stopBackgroundSession;
|
|
47
|
+
exports.stopClassicScan = stopClassicScan;
|
|
48
|
+
exports.stopClassicServer = stopClassicServer;
|
|
49
|
+
exports.stopExtendedAdvertising = stopExtendedAdvertising;
|
|
50
|
+
exports.stopMultipeerSession = stopMultipeerSession;
|
|
26
51
|
exports.stopScan = stopScan;
|
|
27
52
|
exports.subscribeToCharacteristic = subscribeToCharacteristic;
|
|
53
|
+
exports.unpublishL2CAPChannel = unpublishL2CAPChannel;
|
|
28
54
|
exports.unsubscribeFromCharacteristic = unsubscribeFromCharacteristic;
|
|
29
55
|
exports.updateAdvertisingData = updateAdvertisingData;
|
|
56
|
+
exports.updateCharacteristicValue = updateCharacteristicValue;
|
|
30
57
|
exports.writeCharacteristic = writeCharacteristic;
|
|
58
|
+
exports.writeClassic = writeClassic;
|
|
59
|
+
exports.writeDescriptor = writeDescriptor;
|
|
31
60
|
var _reactNativeNitroModules = require("react-native-nitro-modules");
|
|
32
61
|
var _reactNative = require("react-native");
|
|
33
62
|
const MunimBluetooth = _reactNativeNitroModules.NitroModules.createHybridObject('MunimBluetooth');
|
|
@@ -35,30 +64,24 @@ const MunimBluetooth = _reactNativeNitroModules.NitroModules.createHybridObject(
|
|
|
35
64
|
// Android emits through DeviceEventEmitter from the Nitro module itself.
|
|
36
65
|
// iOS exposes a dedicated RCTEventEmitter module.
|
|
37
66
|
const nativeEventModule = _reactNative.Platform.OS === 'ios' ? _reactNative.NativeModules.MunimBluetoothEventEmitter : null;
|
|
38
|
-
console.log('[munim-bluetooth] Checking for event emitter...', _reactNative.Platform.OS === 'android' ? 'USING_DEVICE_EVENT_EMITTER' : nativeEventModule ? 'FOUND' : 'NOT FOUND');
|
|
39
|
-
console.log('[munim-bluetooth] Available NativeModules:', Object.keys(_reactNative.NativeModules).filter(key => key.includes('Bluetooth') || key.includes('Munim')));
|
|
40
67
|
let eventEmitter = null;
|
|
41
68
|
if (_reactNative.Platform.OS === 'android') {
|
|
42
69
|
eventEmitter = _reactNative.DeviceEventEmitter;
|
|
43
|
-
console.log('[munim-bluetooth] Using DeviceEventEmitter on Android');
|
|
44
70
|
} else if (nativeEventModule) {
|
|
45
71
|
try {
|
|
46
72
|
eventEmitter = new _reactNative.NativeEventEmitter(nativeEventModule);
|
|
47
|
-
console.log('[munim-bluetooth] Event emitter initialized successfully');
|
|
48
73
|
} catch (error) {
|
|
49
74
|
console.error('[munim-bluetooth] Failed to initialize event emitter:', error);
|
|
50
75
|
}
|
|
51
|
-
} else {
|
|
52
|
-
console.warn('[munim-bluetooth] Event emitter module not found in NativeModules - device discovery events will not work');
|
|
53
|
-
console.warn('[munim-bluetooth] This usually means the native module was not linked properly or needs a rebuild');
|
|
54
76
|
}
|
|
55
77
|
|
|
56
78
|
// ========== Peripheral Features ==========
|
|
57
79
|
|
|
58
80
|
/**
|
|
59
|
-
* Start advertising as a Bluetooth peripheral with
|
|
81
|
+
* Start advertising as a Bluetooth peripheral with platform-aware advertising data.
|
|
60
82
|
*
|
|
61
|
-
* @param options - An object with serviceUUIDs (string[]) and
|
|
83
|
+
* @param options - An object with serviceUUIDs (string[]) and advertising data types.
|
|
84
|
+
* iOS only advertises local name and service UUIDs.
|
|
62
85
|
*/
|
|
63
86
|
function startAdvertising(options) {
|
|
64
87
|
return MunimBluetooth.startAdvertising(options);
|
|
@@ -98,6 +121,14 @@ function setServices(services) {
|
|
|
98
121
|
return MunimBluetooth.setServices(services);
|
|
99
122
|
}
|
|
100
123
|
|
|
124
|
+
/**
|
|
125
|
+
* Update a local peripheral characteristic value and optionally notify/indicate
|
|
126
|
+
* subscribed centrals.
|
|
127
|
+
*/
|
|
128
|
+
function updateCharacteristicValue(serviceUUID, characteristicUUID, value, notify) {
|
|
129
|
+
return MunimBluetooth.updateCharacteristicValue(serviceUUID, characteristicUUID, value, notify);
|
|
130
|
+
}
|
|
131
|
+
|
|
101
132
|
// ========== Central/Manager Features ==========
|
|
102
133
|
|
|
103
134
|
/**
|
|
@@ -118,6 +149,13 @@ function requestBluetoothPermission() {
|
|
|
118
149
|
return MunimBluetooth.requestBluetoothPermission();
|
|
119
150
|
}
|
|
120
151
|
|
|
152
|
+
/**
|
|
153
|
+
* Return the Bluetooth feature set supported by the current platform/device.
|
|
154
|
+
*/
|
|
155
|
+
function getCapabilities() {
|
|
156
|
+
return MunimBluetooth.getCapabilities();
|
|
157
|
+
}
|
|
158
|
+
|
|
121
159
|
/**
|
|
122
160
|
* Start scanning for BLE devices.
|
|
123
161
|
*
|
|
@@ -175,6 +213,13 @@ function readCharacteristic(deviceId, serviceUUID, characteristicUUID) {
|
|
|
175
213
|
return MunimBluetooth.readCharacteristic(deviceId, serviceUUID, characteristicUUID);
|
|
176
214
|
}
|
|
177
215
|
|
|
216
|
+
/**
|
|
217
|
+
* Read a descriptor value from a connected device.
|
|
218
|
+
*/
|
|
219
|
+
function readDescriptor(deviceId, serviceUUID, characteristicUUID, descriptorUUID) {
|
|
220
|
+
return MunimBluetooth.readDescriptor(deviceId, serviceUUID, characteristicUUID, descriptorUUID);
|
|
221
|
+
}
|
|
222
|
+
|
|
178
223
|
/**
|
|
179
224
|
* Write a value to a characteristic on a connected device.
|
|
180
225
|
*
|
|
@@ -189,6 +234,13 @@ function writeCharacteristic(deviceId, serviceUUID, characteristicUUID, value, w
|
|
|
189
234
|
return MunimBluetooth.writeCharacteristic(deviceId, serviceUUID, characteristicUUID, value, writeType);
|
|
190
235
|
}
|
|
191
236
|
|
|
237
|
+
/**
|
|
238
|
+
* Write a descriptor value to a connected device.
|
|
239
|
+
*/
|
|
240
|
+
function writeDescriptor(deviceId, serviceUUID, characteristicUUID, descriptorUUID, value) {
|
|
241
|
+
return MunimBluetooth.writeDescriptor(deviceId, serviceUUID, characteristicUUID, descriptorUUID, value);
|
|
242
|
+
}
|
|
243
|
+
|
|
192
244
|
/**
|
|
193
245
|
* Subscribe to notifications/indications from a characteristic.
|
|
194
246
|
*
|
|
@@ -230,11 +282,154 @@ function readRSSI(deviceId) {
|
|
|
230
282
|
return MunimBluetooth.readRSSI(deviceId);
|
|
231
283
|
}
|
|
232
284
|
|
|
285
|
+
/**
|
|
286
|
+
* Request an ATT MTU. Android supports this directly; iOS rejects with unsupported.
|
|
287
|
+
*/
|
|
288
|
+
function requestMTU(deviceId, mtu) {
|
|
289
|
+
return MunimBluetooth.requestMTU(deviceId, mtu);
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
/**
|
|
293
|
+
* Set preferred BLE PHY. Android 8+ supports this when hardware allows it.
|
|
294
|
+
*/
|
|
295
|
+
function setPreferredPhy(deviceId, txPhy, rxPhy, phyOption) {
|
|
296
|
+
return MunimBluetooth.setPreferredPhy(deviceId, txPhy, rxPhy, phyOption);
|
|
297
|
+
}
|
|
298
|
+
|
|
299
|
+
/**
|
|
300
|
+
* Read current BLE PHY. Android 8+ supports this when hardware allows it.
|
|
301
|
+
*/
|
|
302
|
+
function readPhy(deviceId) {
|
|
303
|
+
return MunimBluetooth.readPhy(deviceId);
|
|
304
|
+
}
|
|
305
|
+
|
|
306
|
+
/**
|
|
307
|
+
* Return current platform bond state for a device.
|
|
308
|
+
*/
|
|
309
|
+
function getBondState(deviceId) {
|
|
310
|
+
return MunimBluetooth.getBondState(deviceId);
|
|
311
|
+
}
|
|
312
|
+
|
|
313
|
+
/**
|
|
314
|
+
* Start platform pairing/bonding for a device.
|
|
315
|
+
*/
|
|
316
|
+
function createBond(deviceId) {
|
|
317
|
+
return MunimBluetooth.createBond(deviceId);
|
|
318
|
+
}
|
|
319
|
+
|
|
320
|
+
/**
|
|
321
|
+
* Remove a platform bond where supported.
|
|
322
|
+
*/
|
|
323
|
+
function removeBond(deviceId) {
|
|
324
|
+
return MunimBluetooth.removeBond(deviceId);
|
|
325
|
+
}
|
|
326
|
+
|
|
327
|
+
/**
|
|
328
|
+
* Start BLE extended advertising where supported.
|
|
329
|
+
*/
|
|
330
|
+
function startExtendedAdvertising(options) {
|
|
331
|
+
return MunimBluetooth.startExtendedAdvertising(options);
|
|
332
|
+
}
|
|
333
|
+
|
|
334
|
+
/**
|
|
335
|
+
* Stop a BLE extended advertising set.
|
|
336
|
+
*/
|
|
337
|
+
function stopExtendedAdvertising(advertisingId) {
|
|
338
|
+
return MunimBluetooth.stopExtendedAdvertising(advertisingId);
|
|
339
|
+
}
|
|
340
|
+
|
|
341
|
+
/**
|
|
342
|
+
* Publish a local BLE L2CAP channel where supported.
|
|
343
|
+
*/
|
|
344
|
+
function publishL2CAPChannel(encryptionRequired) {
|
|
345
|
+
return MunimBluetooth.publishL2CAPChannel(encryptionRequired);
|
|
346
|
+
}
|
|
347
|
+
|
|
348
|
+
/**
|
|
349
|
+
* Stop a local BLE L2CAP channel.
|
|
350
|
+
*/
|
|
351
|
+
function unpublishL2CAPChannel(psm) {
|
|
352
|
+
return MunimBluetooth.unpublishL2CAPChannel(psm);
|
|
353
|
+
}
|
|
354
|
+
|
|
355
|
+
/**
|
|
356
|
+
* Open an outbound BLE L2CAP channel.
|
|
357
|
+
*/
|
|
358
|
+
function openL2CAPChannel(deviceId, psm) {
|
|
359
|
+
return MunimBluetooth.openL2CAPChannel(deviceId, psm);
|
|
360
|
+
}
|
|
361
|
+
|
|
362
|
+
/**
|
|
363
|
+
* Close an L2CAP channel.
|
|
364
|
+
*/
|
|
365
|
+
function closeL2CAPChannel(channelId) {
|
|
366
|
+
return MunimBluetooth.closeL2CAPChannel(channelId);
|
|
367
|
+
}
|
|
368
|
+
|
|
369
|
+
/**
|
|
370
|
+
* Send hex data over an open L2CAP channel.
|
|
371
|
+
*/
|
|
372
|
+
function sendL2CAPData(channelId, value) {
|
|
373
|
+
return MunimBluetooth.sendL2CAPData(channelId, value);
|
|
374
|
+
}
|
|
375
|
+
|
|
376
|
+
/**
|
|
377
|
+
* Start Classic Bluetooth discovery where supported.
|
|
378
|
+
*/
|
|
379
|
+
function startClassicScan() {
|
|
380
|
+
return MunimBluetooth.startClassicScan();
|
|
381
|
+
}
|
|
382
|
+
|
|
383
|
+
/**
|
|
384
|
+
* Stop Classic Bluetooth discovery.
|
|
385
|
+
*/
|
|
386
|
+
function stopClassicScan() {
|
|
387
|
+
return MunimBluetooth.stopClassicScan();
|
|
388
|
+
}
|
|
389
|
+
|
|
390
|
+
/**
|
|
391
|
+
* Connect to a Classic Bluetooth RFCOMM service where supported.
|
|
392
|
+
*/
|
|
393
|
+
function connectClassic(deviceId, serviceUUID) {
|
|
394
|
+
return MunimBluetooth.connectClassic(deviceId, serviceUUID);
|
|
395
|
+
}
|
|
396
|
+
|
|
397
|
+
/**
|
|
398
|
+
* Listen for incoming Classic Bluetooth RFCOMM connections on Android.
|
|
399
|
+
*/
|
|
400
|
+
function startClassicServer(serviceUUID, serviceName) {
|
|
401
|
+
return MunimBluetooth.startClassicServer(serviceUUID, serviceName);
|
|
402
|
+
}
|
|
403
|
+
|
|
404
|
+
/**
|
|
405
|
+
* Stop a Classic Bluetooth RFCOMM listener on Android.
|
|
406
|
+
*/
|
|
407
|
+
function stopClassicServer(serviceUUID) {
|
|
408
|
+
return MunimBluetooth.stopClassicServer(serviceUUID);
|
|
409
|
+
}
|
|
410
|
+
|
|
411
|
+
/**
|
|
412
|
+
* Disconnect a Classic Bluetooth device.
|
|
413
|
+
*/
|
|
414
|
+
function disconnectClassic(deviceId) {
|
|
415
|
+
return MunimBluetooth.disconnectClassic(deviceId);
|
|
416
|
+
}
|
|
417
|
+
|
|
418
|
+
/**
|
|
419
|
+
* Write hex data to a Classic Bluetooth RFCOMM connection.
|
|
420
|
+
*/
|
|
421
|
+
function writeClassic(deviceId, value) {
|
|
422
|
+
return MunimBluetooth.writeClassic(deviceId, value);
|
|
423
|
+
}
|
|
424
|
+
|
|
233
425
|
/**
|
|
234
426
|
* Start a best-effort background BLE session.
|
|
235
427
|
*
|
|
236
|
-
* Android uses a foreground service
|
|
237
|
-
*
|
|
428
|
+
* Android uses a foreground service and restores scan/advertising/configured
|
|
429
|
+
* GATT services after normal service process recreation. iOS relies on the host
|
|
430
|
+
* app's Bluetooth background modes and CoreBluetooth state restoration, with
|
|
431
|
+
* terminated-state relaunch still limited by Apple's current relaunch rules.
|
|
432
|
+
* User force-quit/force-stop is controlled by the OS and cannot be bypassed.
|
|
238
433
|
*/
|
|
239
434
|
function startBackgroundSession(options) {
|
|
240
435
|
return MunimBluetooth.startBackgroundSession(options);
|
|
@@ -247,6 +442,43 @@ function stopBackgroundSession() {
|
|
|
247
442
|
return MunimBluetooth.stopBackgroundSession();
|
|
248
443
|
}
|
|
249
444
|
|
|
445
|
+
/**
|
|
446
|
+
* Start Apple Multipeer Connectivity transport. This is iOS/iPadOS/macOS/tvOS
|
|
447
|
+
* only; Android cannot join Apple Multipeer sessions.
|
|
448
|
+
*/
|
|
449
|
+
function startMultipeerSession(options) {
|
|
450
|
+
return MunimBluetooth.startMultipeerSession(options);
|
|
451
|
+
}
|
|
452
|
+
|
|
453
|
+
/**
|
|
454
|
+
* Stop the active Apple Multipeer Connectivity session.
|
|
455
|
+
*/
|
|
456
|
+
function stopMultipeerSession() {
|
|
457
|
+
return MunimBluetooth.stopMultipeerSession();
|
|
458
|
+
}
|
|
459
|
+
|
|
460
|
+
/**
|
|
461
|
+
* Invite a discovered Multipeer peer by runtime peer id.
|
|
462
|
+
*/
|
|
463
|
+
function inviteMultipeerPeer(peerId) {
|
|
464
|
+
return MunimBluetooth.inviteMultipeerPeer(peerId);
|
|
465
|
+
}
|
|
466
|
+
|
|
467
|
+
/**
|
|
468
|
+
* Return discovered/connected Apple Multipeer peers.
|
|
469
|
+
*/
|
|
470
|
+
function getMultipeerPeers() {
|
|
471
|
+
return MunimBluetooth.getMultipeerPeers();
|
|
472
|
+
}
|
|
473
|
+
|
|
474
|
+
/**
|
|
475
|
+
* Send hex data over Apple Multipeer Connectivity. Omit peerIds to broadcast
|
|
476
|
+
* to all connected peers.
|
|
477
|
+
*/
|
|
478
|
+
function sendMultipeerMessage(value, peerIds, reliable) {
|
|
479
|
+
return MunimBluetooth.sendMultipeerMessage(value, peerIds, reliable);
|
|
480
|
+
}
|
|
481
|
+
|
|
250
482
|
// ========== Event Management ==========
|
|
251
483
|
|
|
252
484
|
/**
|
|
@@ -307,22 +539,51 @@ var _default = exports.default = {
|
|
|
307
539
|
updateAdvertisingData,
|
|
308
540
|
getAdvertisingData,
|
|
309
541
|
setServices,
|
|
542
|
+
updateCharacteristicValue,
|
|
310
543
|
// Central
|
|
311
544
|
isBluetoothEnabled,
|
|
312
545
|
requestBluetoothPermission,
|
|
546
|
+
getCapabilities,
|
|
313
547
|
startScan,
|
|
314
548
|
stopScan,
|
|
315
549
|
connect,
|
|
316
550
|
disconnect,
|
|
317
551
|
discoverServices,
|
|
318
552
|
readCharacteristic,
|
|
553
|
+
readDescriptor,
|
|
319
554
|
writeCharacteristic,
|
|
555
|
+
writeDescriptor,
|
|
320
556
|
subscribeToCharacteristic,
|
|
321
557
|
unsubscribeFromCharacteristic,
|
|
322
558
|
getConnectedDevices,
|
|
323
559
|
readRSSI,
|
|
560
|
+
requestMTU,
|
|
561
|
+
setPreferredPhy,
|
|
562
|
+
readPhy,
|
|
563
|
+
getBondState,
|
|
564
|
+
createBond,
|
|
565
|
+
removeBond,
|
|
566
|
+
startExtendedAdvertising,
|
|
567
|
+
stopExtendedAdvertising,
|
|
568
|
+
publishL2CAPChannel,
|
|
569
|
+
unpublishL2CAPChannel,
|
|
570
|
+
openL2CAPChannel,
|
|
571
|
+
closeL2CAPChannel,
|
|
572
|
+
sendL2CAPData,
|
|
573
|
+
startClassicScan,
|
|
574
|
+
stopClassicScan,
|
|
575
|
+
connectClassic,
|
|
576
|
+
startClassicServer,
|
|
577
|
+
stopClassicServer,
|
|
578
|
+
disconnectClassic,
|
|
579
|
+
writeClassic,
|
|
324
580
|
startBackgroundSession,
|
|
325
581
|
stopBackgroundSession,
|
|
582
|
+
startMultipeerSession,
|
|
583
|
+
stopMultipeerSession,
|
|
584
|
+
inviteMultipeerPeer,
|
|
585
|
+
getMultipeerPeers,
|
|
586
|
+
sendMultipeerMessage,
|
|
326
587
|
// Events
|
|
327
588
|
addDeviceFoundListener,
|
|
328
589
|
addEventListener,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNativeNitroModules","require","_reactNative","MunimBluetooth","NitroModules","createHybridObject","nativeEventModule","Platform","OS","NativeModules","MunimBluetoothEventEmitter","
|
|
1
|
+
{"version":3,"names":["_reactNativeNitroModules","require","_reactNative","MunimBluetooth","NitroModules","createHybridObject","nativeEventModule","Platform","OS","NativeModules","MunimBluetoothEventEmitter","eventEmitter","DeviceEventEmitter","NativeEventEmitter","error","console","startAdvertising","options","updateAdvertisingData","advertisingData","getAdvertisingData","stopAdvertising","setServices","services","updateCharacteristicValue","serviceUUID","characteristicUUID","value","notify","isBluetoothEnabled","requestBluetoothPermission","getCapabilities","startScan","stopScan","connect","deviceId","disconnect","discoverServices","readCharacteristic","readDescriptor","descriptorUUID","writeCharacteristic","writeType","writeDescriptor","subscribeToCharacteristic","unsubscribeFromCharacteristic","getConnectedDevices","readRSSI","requestMTU","mtu","setPreferredPhy","txPhy","rxPhy","phyOption","readPhy","getBondState","createBond","removeBond","startExtendedAdvertising","stopExtendedAdvertising","advertisingId","publishL2CAPChannel","encryptionRequired","unpublishL2CAPChannel","psm","openL2CAPChannel","closeL2CAPChannel","channelId","sendL2CAPData","startClassicScan","stopClassicScan","connectClassic","startClassicServer","serviceName","stopClassicServer","disconnectClassic","writeClassic","startBackgroundSession","stopBackgroundSession","startMultipeerSession","stopMultipeerSession","inviteMultipeerPeer","peerId","getMultipeerPeers","sendMultipeerMessage","peerIds","reliable","addDeviceFoundListener","callback","warn","subscription","addListener","remove","addEventListener","eventName","removeListeners","count","_default","exports","default"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"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","ignoreList":[]}
|