Open RRMoelker opened 4 years ago
We've seen this problem on multiple devices running Android 10 and 11. So far Android 9 seems to work fine.
Hi @RRMoelker ,
I met the same issue, do you find the solution?
Yes, although I don't recall the solution I'm afraid.
There are multiple known issues with known fixes. I merged them into a fork of this repo: https://github.com/DreamOnward/react-native-nordic-dfu.
I think it had something to do with a the second part transmission happening to soon. A timeout was needed if I recall correctly.
Hi @RRMoelker ,
Thanks for the answer. But I still met the problems. Did you met the issue of GATT Error when you do DFU upgrade on android phone?
The GATT error we encountered here were two fold.
More info on Samsung issue: https://forum.developer.samsung.com/t/samsung-android-10-ble-connectivity-regression/509
You can fix this by changing the value of the method setKeepBond
from true
into false
inside (https://github.com/Pilloxa/react-native-nordic-dfu/blob/master/android/src/main/java/com/pilloxa/dfu/RNNordicDfuModule.java)
public void startDFU(String address, String name, String filePath, Promise promise) { mPromise = promise; final DfuServiceInitiator starter = new DfuServiceInitiator(address) .setKeepBond(false);
The problem we are facing is that a multi part DFU fails on Android.
After calling
NordicDFU.startDFU
everything runs fine until the first part of a multi part DFU is done. Directly following the 100% upload of the first part the function yields the error: "DFU DEVICE DISCONNECTED"When interacting with the clock after that bonding is needed again. Which indicates to me that maybe the second upload is failing because it may need to wait until a new bond is needed.
The same update works just fine on iOS.
I'm no expert, but I would think either: