Call to getCentralManager returned nil[NordicDFU.startDFU][IOS]
daihieptn97 opened this issue · 1 comments
daihieptn97 commented
I implement startDFU function and faulty Call to getCentralManager returned nil
RNFetchBlob
.config({
// response data will be saved to this path if it has access right.
path: dirs.DocumentDir + '/FirmwareBLE.zip',
fileCache: true,
})
.fetch('GET', 'http://localhost/uploads/SdoorMasterV1001_009.zip', {
//some headers ..
})
.then((res) => {
// the path should be dirs.DocumentDir + 'path-to-file.anything'
console.log('The file saved to ', res.path());
NordicDFU.startDFU({
//deviceAddress: remote.macBleHex,
deviceAddress: "6E400001-B5A3-F393-E0A9-E50E24DCCA9E",
deviceName : "423423423",
filePath: res.path(),
})
.then(res => console.log('Transfer done:', res))
.catch(console.log);
});
}, 2000);
I have added the code to the xcode in the function didFinishLaunchingWithOptions(AppDelegate.m)
[RNNordicDfu setCentralManagerGetter:^() {
return [BleManager getCentralManager];
}];
// Reset manager delegate since the Nordic DFU lib "steals" control over it
[RNNordicDfu setOnDFUComplete:^() {
NSLog(@"onDFUComplete");
CBCentralManager * manager = [BleManager getCentralManager];
manager.delegate = [BleManager getInstance];
}];
[RNNordicDfu setOnDFUError:^() {
NSLog(@"onDFUError");
CBCentralManager * manager = [BleManager getCentralManager];
manager.delegate = [BleManager getInstance];
}];
Package.json with me
"dependencies": {
"@react-native-community/geolocation": "^2.0.2",
"@react-native-community/netinfo": "^4.3.0",
"base-64": "^0.1.0",
"crypto-js": "^3.1.9-1",
"native-base": "^2.13.8",
"react": "16.9.0",
"react-native": "0.61.3",
"react-native-action-button": "^2.8.5",
"react-native-background-timer": "^2.0.1",
"react-native-base64": "0.0.2",
"react-native-ble-manager": "^6.7.0",
"react-native-ble-plx": "^1.1.0",
"react-native-device-info": "^5.1.0",
"react-native-elements": "^0.19.1",
"react-native-facebook-account-kit": "1.0.0",
"react-native-firebase": "^5.5.6",
"react-native-gesture-handler": "^1.0.12",
"react-native-image-picker": "^0.27.1",
"react-native-ionicons": "^4.6.1",
"react-native-keep-awake": "^3.1.0",
"react-native-modal": "^11.4.0",
"react-native-network-info": "^5.2.1",
"react-native-nordic-dfu": "^3.0.1",
"react-native-paho-mqtt": "^0.1.1",
"react-native-parallax-header": "^1.1.3",
"react-native-parallax-scroll-view": "^0.21.3",
"react-native-progress": "^3.6.0",
"react-native-smartconfig-2": "^1.2.3",
"react-native-smartconfig-ll": "^0.2.4",
"react-native-sortable-grid": "^2.0.0",
"react-native-sortable-listview": "^0.2.9",
"react-native-swiper": "^1.5.14",
"react-native-udp": "^2.3.1",
"react-native-vector-icons": "^6.6.0",
"react-native-wheel-datepicker": "^2.2.3",
"react-navigation": "^3.0.9",
"react-navigation-collapsible": "^3.0.3",
"react-redux": "^5.0.7",
"recyclerlistview": "^1.3.4",
"redux": "^4.0.0",
"redux-thunk": "^2.3.0",
"rn-fetch-blob": "github:joltup/rn-fetch-blob"
},
thanks you !
SaltedBlowfish commented
This is because you are not calling .start()
on BleManager
. See first bullet point here: https://github.com/innoveit/react-native-ble-manager#note
Example:
...
BleManager.start({showAlert: false})
.then(() => {
// Success code
console.log('Module initialized');
});
...