Skip to content

Commit 64a24c3

Browse files
authored
Capacitor BLE plugin using Nordic library (#4735)
* Use Nordic Ble Library * Get filtered devices * Filter list * Silence Capacitor debug logging * Use desired MTU * Fix the split() method call to match Nordic BLE library API * Fix permissions * Rename configurator to app * Remove unused chunkSize variable * Add Nordic Scanner Compat library * Refactor ble scanning * Fix connection and refactor * 👾 * Starting cleanup * Starting cleanup II * Starting cleanup III
1 parent 02d3fd6 commit 64a24c3

File tree

8 files changed

+959
-1
lines changed

8 files changed

+959
-1
lines changed

android/app/build.gradle

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,8 @@ dependencies {
3636
implementation "androidx.coordinatorlayout:coordinatorlayout:$androidxCoordinatorLayoutVersion"
3737
implementation "androidx.core:core-splashscreen:$coreSplashScreenVersion"
3838
implementation 'com.github.mik3y:usb-serial-for-android:3.9.0'
39+
implementation 'no.nordicsemi.android:ble:2.11.0'
40+
implementation 'no.nordicsemi.android.support.v18:scanner:1.6.0'
3941
implementation project(':capacitor-android')
4042
testImplementation "junit:junit:$junitVersion"
4143
androidTestImplementation "androidx.test.ext:junit:$androidxJunitVersion"

android/app/src/main/AndroidManifest.xml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,18 @@
5555
<!-- Permissions -->
5656

5757
<uses-permission android:name="android.permission.INTERNET" />
58+
<uses-permission android:name="android.permission.BLUETOOTH" android:maxSdkVersion="30" />
59+
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" android:maxSdkVersion="30" />
60+
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" android:maxSdkVersion="30" />
61+
<uses-permission
62+
android:name="android.permission.BLUETOOTH_SCAN"
63+
android:minSdkVersion="31"
64+
android:usesPermissionFlags="neverForLocation" />
65+
<uses-permission
66+
android:name="android.permission.BLUETOOTH_CONNECT"
67+
android:minSdkVersion="31" />
5868

5969
<!-- USB Host feature -->
6070
<uses-feature android:name="android.hardware.usb.host" android:required="true" />
71+
<uses-feature android:name="android.hardware.bluetooth_le" android:required="true" />
6172
</manifest>

android/app/src/main/java/betaflight/app/MainActivity.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,13 @@
55
import betaflight.app.protocols.serial.BetaflightSerialPlugin;
66
import com.getcapacitor.BridgeActivity;
77
import betaflight.app.protocols.tcp.BetaflightTcpPlugin;
8+
import betaflight.app.protocols.ble.BetaflightBlePlugin;
89

910
public class MainActivity extends BridgeActivity {
1011
@Override
1112
public void onCreate(Bundle savedInstanceState) {
1213
registerPlugin(BetaflightSerialPlugin.class);
14+
registerPlugin(BetaflightBlePlugin.class);
1315
registerPlugin(BetaflightTcpPlugin.class);
1416
super.onCreate(savedInstanceState);
1517
}

0 commit comments

Comments
 (0)