Skip to content

Instantly share code, notes, and snippets.

@stkent
Last active August 16, 2025 01:43
Show Gist options
  • Save stkent/a7f0d6b868e805da326b112d60a9f59b to your computer and use it in GitHub Desktop.
Save stkent/a7f0d6b868e805da326b112d60a9f59b to your computer and use it in GitHub Desktop.

Revisions

  1. stkent revised this gist Dec 2, 2022. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion android-bluetooth-low-energy-resources.md
    Original file line number Diff line number Diff line change
    @@ -29,7 +29,7 @@ Resources relevant to building Bluetooth Low Energy Android applications from sc
    - "Bluetooth Low Energy on Android: Top Tips For The Tricky Bits" ([slides](https://speakerdeck.com/stkent/bluetooth-low-energy-on-android-top-tips-for-the-tricky-bits-video), [video](https://www.youtube.com/watch?v=jDykHjn-4Ng)) by [Stuart Kent](https://twitter.com/skentphd) - My own talk, but now several years old.
    - "[The Ultimate Guide to Android Bluetooth Low Energy](https://punchthrough.com/android-ble-guide/)" by PunchThrough - A very modern (2020) comprehensive guide.
    - "Bluetooth LE for modern Android Development" series ([part 1](https://www.hellsoft.se/bluetooth-le-for-modern-android-development-part-1/), [part 2](https://www.hellsoft.se/bluetooth-le-for-modern-android-development-part-2/), [part 3](https://www.hellsoft.se/bluetooth-le-for-modern-android-development-part-3/)) by [Erik Hellman](https://twitter.com/ErikHellman) - Articles with advice that's particularly relevant in 2022.
    - [Android BLE Issues](https://github.com/iDevicesInc/SweetBlue/wiki/Android-BLE-Issues) - A fairly complete list of symptoms you are likely to encounter while working with Android's BLE stack. Some apply to pre-Lollipop only, but many still exist and occur.
    - [Android BLE Issues](https://github.com/HubbellCorp/SweetBlue/wiki/Android-BLE-Issues) - A fairly complete list of symptoms you are likely to encounter while working with Android's BLE stack. Some apply to pre-Lollipop only, but many still exist and occur.

    ## Implementations

  2. stkent revised this gist Dec 2, 2022. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion android-bluetooth-low-energy-resources.md
    Original file line number Diff line number Diff line change
    @@ -15,7 +15,7 @@
    - [NordicSemiconductor/Android-BLE-Library](https://github.com/NordicSemiconductor/Android-BLE-Library/) - Contains production-ready implementations of many of the important components (queues, managers, etc.) for working with BLE on Android. Consider using this library as-is or browsing the source code as inspiration if building your own implementation.
    - [Polidea/RxAndroidBle](https://github.com/Polidea/RxAndroidBle) - For using RxJava with BLE.
    - [Beepiz/BleGattCoroutines](https://github.com/Beepiz/BleGattCoroutines) - For using Kotlin's coroutines to sidestep BLE callback hell.
    - [iDevicesInc/SweetBlue](https://github.com/iDevicesInc/SweetBlue/) (proprietary) - May be useful if you have more dollars than time, or if you are developing stability-critical applications.
    - [HubbellCorp/SweetBlue](https://github.com/HubbellCorp/SweetBlue).
    - [douglasjunior/AndroidBluetoothLibrary](https://github.com/douglasjunior/AndroidBluetoothLibrary).
    - [JuulLabs/kable](https://github.com/JuulLabs/kable) - Coroutines-based Kotlin Multiplatform library.
    - [ErikHellman/android-blex](https://github.com/ErikHellman/android-blex).
  3. stkent revised this gist Dec 2, 2022. 1 changed file with 6 additions and 4 deletions.
    10 changes: 6 additions & 4 deletions android-bluetooth-low-energy-resources.md
    Original file line number Diff line number Diff line change
    @@ -6,8 +6,9 @@

    ## Android-Specific

    - "[Android Lollipop: Bluetooth LE Matures](https://www.youtube.com/watch?v=qx55Sa8UZAQ)" - A nice overview video by [Dave Smith](https://twitter.com/devunwired). Focuses on Lollipop and newer.
    - Fragmented Episode 45: "[Bluetooth (LE) with Dave (devunwired) Smith](http://fragmentedpodcast.com/episodes/45/)" - Another great Dave Smith overview if you prefer the podcast format!
    - "Android Lollipop: Bluetooth LE Matures" ([video](https://www.youtube.com/watch?v=qx55Sa8UZAQ)).
    - "Bluetooth (LE) with Dave (devunwired) Smith" ([podcast](http://fragmentedpodcast.com/episodes/45/)).
    - "State of BLE on Android in 2022" ([slides](https://speakerdeck.com/erikhellman/state-of-ble-on-android-in-2022), [video](https://www.droidcon.com/2022/11/15/state-of-ble-on-android-in-2022/)).

    # Libraries

    @@ -17,16 +18,17 @@
    - [iDevicesInc/SweetBlue](https://github.com/iDevicesInc/SweetBlue/) (proprietary) - May be useful if you have more dollars than time, or if you are developing stability-critical applications.
    - [douglasjunior/AndroidBluetoothLibrary](https://github.com/douglasjunior/AndroidBluetoothLibrary).
    - [JuulLabs/kable](https://github.com/JuulLabs/kable) - Coroutines-based Kotlin Multiplatform library.
    - [ErikHellman/android-blex](https://github.com/ErikHellman/android-blex).

    # Building

    Resources relevant to building Bluetooth Low Energy Android applications from scratch.

    ## In-Depth Guides

    - "Bluetooth Low Energy on Android: Top Tips For The Tricky Bits" by [Stuart Kent](https://twitter.com/skentphd) ([slides](https://speakerdeck.com/stkent/bluetooth-low-energy-on-android-top-tips-for-the-tricky-bits-video), [video](https://www.youtube.com/watch?v=jDykHjn-4Ng)) - My own talk, but now several years old.
    - "Bluetooth Low Energy on Android: Top Tips For The Tricky Bits" ([slides](https://speakerdeck.com/stkent/bluetooth-low-energy-on-android-top-tips-for-the-tricky-bits-video), [video](https://www.youtube.com/watch?v=jDykHjn-4Ng)) by [Stuart Kent](https://twitter.com/skentphd) - My own talk, but now several years old.
    - "[The Ultimate Guide to Android Bluetooth Low Energy](https://punchthrough.com/android-ble-guide/)" by PunchThrough - A very modern (2020) comprehensive guide.
    - "Bluetooth LE for modern Android Development" series, by [Erik Hellman](https://twitter.com/ErikHellman) ([part 1](https://www.hellsoft.se/bluetooth-le-for-modern-android-development-part-1/), [part 2](https://www.hellsoft.se/bluetooth-le-for-modern-android-development-part-2/), [part 3](https://www.hellsoft.se/bluetooth-le-for-modern-android-development-part-3/)) - Articles with advice that's particularly relevant in 2022.
    - "Bluetooth LE for modern Android Development" series ([part 1](https://www.hellsoft.se/bluetooth-le-for-modern-android-development-part-1/), [part 2](https://www.hellsoft.se/bluetooth-le-for-modern-android-development-part-2/), [part 3](https://www.hellsoft.se/bluetooth-le-for-modern-android-development-part-3/)) by [Erik Hellman](https://twitter.com/ErikHellman) - Articles with advice that's particularly relevant in 2022.
    - [Android BLE Issues](https://github.com/iDevicesInc/SweetBlue/wiki/Android-BLE-Issues) - A fairly complete list of symptoms you are likely to encounter while working with Android's BLE stack. Some apply to pre-Lollipop only, but many still exist and occur.

    ## Implementations
  4. stkent revised this gist Jan 9, 2022. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion android-bluetooth-low-energy-resources.md
    Original file line number Diff line number Diff line change
    @@ -26,7 +26,7 @@ Resources relevant to building Bluetooth Low Energy Android applications from sc

    - "Bluetooth Low Energy on Android: Top Tips For The Tricky Bits" by [Stuart Kent](https://twitter.com/skentphd) ([slides](https://speakerdeck.com/stkent/bluetooth-low-energy-on-android-top-tips-for-the-tricky-bits-video), [video](https://www.youtube.com/watch?v=jDykHjn-4Ng)) - My own talk, but now several years old.
    - "[The Ultimate Guide to Android Bluetooth Low Energy](https://punchthrough.com/android-ble-guide/)" by PunchThrough - A very modern (2020) comprehensive guide.
    - "Bluetooth LE for modern Android Development" series, by [Erik Hellman](https://twitter.com/ErikHellman) ([post 1](https://www.hellsoft.se/bluetooth-le-for-modern-android-development-part-1/)) - Introductory articles with advice that's particularly relevant in 2021.
    - "Bluetooth LE for modern Android Development" series, by [Erik Hellman](https://twitter.com/ErikHellman) ([part 1](https://www.hellsoft.se/bluetooth-le-for-modern-android-development-part-1/), [part 2](https://www.hellsoft.se/bluetooth-le-for-modern-android-development-part-2/), [part 3](https://www.hellsoft.se/bluetooth-le-for-modern-android-development-part-3/)) - Articles with advice that's particularly relevant in 2022.
    - [Android BLE Issues](https://github.com/iDevicesInc/SweetBlue/wiki/Android-BLE-Issues) - A fairly complete list of symptoms you are likely to encounter while working with Android's BLE stack. Some apply to pre-Lollipop only, but many still exist and occur.

    ## Implementations
  5. stkent revised this gist Jun 14, 2021. 1 changed file with 1 addition and 2 deletions.
    3 changes: 1 addition & 2 deletions android-bluetooth-low-energy-resources.md
    Original file line number Diff line number Diff line change
    @@ -26,8 +26,7 @@ Resources relevant to building Bluetooth Low Energy Android applications from sc

    - "Bluetooth Low Energy on Android: Top Tips For The Tricky Bits" by [Stuart Kent](https://twitter.com/skentphd) ([slides](https://speakerdeck.com/stkent/bluetooth-low-energy-on-android-top-tips-for-the-tricky-bits-video), [video](https://www.youtube.com/watch?v=jDykHjn-4Ng)) - My own talk, but now several years old.
    - "[The Ultimate Guide to Android Bluetooth Low Energy](https://punchthrough.com/android-ble-guide/)" by PunchThrough - A very modern (2020) comprehensive guide.
    - "Bluetooth Low Energy on Android" series by [Erik Hellman](https://twitter.com/ErikHellman) ([post 1](https://hellsoft.se/bluetooth-low-energy-on-android-part-1-1aa8bf60717d)) ([post 2](https://hellsoft.se/bluetooth-low-energy-on-android-part-2-8fdb8ee3bfe9)) - Introductory articles.
    - "Bluetooth LE for modern Android Development" series, also by [Erik Hellman](https://twitter.com/ErikHellman) ([post 1](https://www.hellsoft.se/bluetooth-le-for-modern-android-development-part-1/)) - Introductory articles with advice that's particularly relevant in 2021.
    - "Bluetooth LE for modern Android Development" series, by [Erik Hellman](https://twitter.com/ErikHellman) ([post 1](https://www.hellsoft.se/bluetooth-le-for-modern-android-development-part-1/)) - Introductory articles with advice that's particularly relevant in 2021.
    - [Android BLE Issues](https://github.com/iDevicesInc/SweetBlue/wiki/Android-BLE-Issues) - A fairly complete list of symptoms you are likely to encounter while working with Android's BLE stack. Some apply to pre-Lollipop only, but many still exist and occur.

    ## Implementations
  6. stkent revised this gist Jun 14, 2021. 1 changed file with 2 additions and 1 deletion.
    3 changes: 2 additions & 1 deletion android-bluetooth-low-energy-resources.md
    Original file line number Diff line number Diff line change
    @@ -24,9 +24,10 @@ Resources relevant to building Bluetooth Low Energy Android applications from sc

    ## In-Depth Guides

    - "Bluetooth Low Energy on Android: Top Tips For The Tricky Bits" by [Stuart Kent](https://twitter.com/skentphd) ([slides](https://speakerdeck.com/stkent/bluetooth-low-energy-on-android-top-tips-for-the-tricky-bits-video), [video](https://www.youtube.com/watch?v=jDykHjn-4Ng)) - My own talk!
    - "Bluetooth Low Energy on Android: Top Tips For The Tricky Bits" by [Stuart Kent](https://twitter.com/skentphd) ([slides](https://speakerdeck.com/stkent/bluetooth-low-energy-on-android-top-tips-for-the-tricky-bits-video), [video](https://www.youtube.com/watch?v=jDykHjn-4Ng)) - My own talk, but now several years old.
    - "[The Ultimate Guide to Android Bluetooth Low Energy](https://punchthrough.com/android-ble-guide/)" by PunchThrough - A very modern (2020) comprehensive guide.
    - "Bluetooth Low Energy on Android" series by [Erik Hellman](https://twitter.com/ErikHellman) ([post 1](https://hellsoft.se/bluetooth-low-energy-on-android-part-1-1aa8bf60717d)) ([post 2](https://hellsoft.se/bluetooth-low-energy-on-android-part-2-8fdb8ee3bfe9)) - Introductory articles.
    - "Bluetooth LE for modern Android Development" series, also by [Erik Hellman](https://twitter.com/ErikHellman) ([post 1](https://www.hellsoft.se/bluetooth-le-for-modern-android-development-part-1/)) - Introductory articles with advice that's particularly relevant in 2021.
    - [Android BLE Issues](https://github.com/iDevicesInc/SweetBlue/wiki/Android-BLE-Issues) - A fairly complete list of symptoms you are likely to encounter while working with Android's BLE stack. Some apply to pre-Lollipop only, but many still exist and occur.

    ## Implementations
  7. stkent revised this gist Dec 27, 2020. 1 changed file with 1 addition and 0 deletions.
    1 change: 1 addition & 0 deletions android-bluetooth-low-energy-resources.md
    Original file line number Diff line number Diff line change
    @@ -16,6 +16,7 @@
    - [Beepiz/BleGattCoroutines](https://github.com/Beepiz/BleGattCoroutines) - For using Kotlin's coroutines to sidestep BLE callback hell.
    - [iDevicesInc/SweetBlue](https://github.com/iDevicesInc/SweetBlue/) (proprietary) - May be useful if you have more dollars than time, or if you are developing stability-critical applications.
    - [douglasjunior/AndroidBluetoothLibrary](https://github.com/douglasjunior/AndroidBluetoothLibrary).
    - [JuulLabs/kable](https://github.com/JuulLabs/kable) - Coroutines-based Kotlin Multiplatform library.

    # Building

  8. stkent revised this gist May 24, 2020. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion android-bluetooth-low-energy-resources.md
    Original file line number Diff line number Diff line change
    @@ -24,7 +24,7 @@ Resources relevant to building Bluetooth Low Energy Android applications from sc
    ## In-Depth Guides

    - "Bluetooth Low Energy on Android: Top Tips For The Tricky Bits" by [Stuart Kent](https://twitter.com/skentphd) ([slides](https://speakerdeck.com/stkent/bluetooth-low-energy-on-android-top-tips-for-the-tricky-bits-video), [video](https://www.youtube.com/watch?v=jDykHjn-4Ng)) - My own talk!
    - ["The Ultimate Guide to Android Bluetooth Low Energy"](https://punchthrough.com/android-ble-guide/) by PunchThrough - A very modern (2020) comprehensive guide.
    - "[The Ultimate Guide to Android Bluetooth Low Energy](https://punchthrough.com/android-ble-guide/)" by PunchThrough - A very modern (2020) comprehensive guide.
    - "Bluetooth Low Energy on Android" series by [Erik Hellman](https://twitter.com/ErikHellman) ([post 1](https://hellsoft.se/bluetooth-low-energy-on-android-part-1-1aa8bf60717d)) ([post 2](https://hellsoft.se/bluetooth-low-energy-on-android-part-2-8fdb8ee3bfe9)) - Introductory articles.
    - [Android BLE Issues](https://github.com/iDevicesInc/SweetBlue/wiki/Android-BLE-Issues) - A fairly complete list of symptoms you are likely to encounter while working with Android's BLE stack. Some apply to pre-Lollipop only, but many still exist and occur.

  9. stkent revised this gist May 24, 2020. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion android-bluetooth-low-energy-resources.md
    Original file line number Diff line number Diff line change
    @@ -24,7 +24,7 @@ Resources relevant to building Bluetooth Low Energy Android applications from sc
    ## In-Depth Guides

    - "Bluetooth Low Energy on Android: Top Tips For The Tricky Bits" by [Stuart Kent](https://twitter.com/skentphd) ([slides](https://speakerdeck.com/stkent/bluetooth-low-energy-on-android-top-tips-for-the-tricky-bits-video), [video](https://www.youtube.com/watch?v=jDykHjn-4Ng)) - My own talk!
    - "The Ultimate Guide to Android Bluetooth Low Energy" by [PunchThrough](https://punchthrough.com/android-ble-guide/) - A very modern (2020) comprehensive guide.
    - ["The Ultimate Guide to Android Bluetooth Low Energy"](https://punchthrough.com/android-ble-guide/) by PunchThrough - A very modern (2020) comprehensive guide.
    - "Bluetooth Low Energy on Android" series by [Erik Hellman](https://twitter.com/ErikHellman) ([post 1](https://hellsoft.se/bluetooth-low-energy-on-android-part-1-1aa8bf60717d)) ([post 2](https://hellsoft.se/bluetooth-low-energy-on-android-part-2-8fdb8ee3bfe9)) - Introductory articles.
    - [Android BLE Issues](https://github.com/iDevicesInc/SweetBlue/wiki/Android-BLE-Issues) - A fairly complete list of symptoms you are likely to encounter while working with Android's BLE stack. Some apply to pre-Lollipop only, but many still exist and occur.

  10. stkent revised this gist May 24, 2020. 1 changed file with 3 additions and 1 deletion.
    4 changes: 3 additions & 1 deletion android-bluetooth-low-energy-resources.md
    Original file line number Diff line number Diff line change
    @@ -24,11 +24,13 @@ Resources relevant to building Bluetooth Low Energy Android applications from sc
    ## In-Depth Guides

    - "Bluetooth Low Energy on Android: Top Tips For The Tricky Bits" by [Stuart Kent](https://twitter.com/skentphd) ([slides](https://speakerdeck.com/stkent/bluetooth-low-energy-on-android-top-tips-for-the-tricky-bits-video), [video](https://www.youtube.com/watch?v=jDykHjn-4Ng)) - My own talk!
    - "Bluetooth Low Energy on Android" series by [Erik Hellman](https://twitter.com/ErikHellman) ([post 1](https://hellsoft.se/bluetooth-low-energy-on-android-part-1-1aa8bf60717d)) ([post 2](https://hellsoft.se/bluetooth-low-energy-on-android-part-2-8fdb8ee3bfe9)) - Comprehensive introductory articles.
    - "The Ultimate Guide to Android Bluetooth Low Energy" by [PunchThrough](https://punchthrough.com/android-ble-guide/) - A very modern (2020) comprehensive guide.
    - "Bluetooth Low Energy on Android" series by [Erik Hellman](https://twitter.com/ErikHellman) ([post 1](https://hellsoft.se/bluetooth-low-energy-on-android-part-1-1aa8bf60717d)) ([post 2](https://hellsoft.se/bluetooth-low-energy-on-android-part-2-8fdb8ee3bfe9)) - Introductory articles.
    - [Android BLE Issues](https://github.com/iDevicesInc/SweetBlue/wiki/Android-BLE-Issues) - A fairly complete list of symptoms you are likely to encounter while working with Android's BLE stack. Some apply to pre-Lollipop only, but many still exist and occur.

    ## Implementations

    - [PunchThrough/ble-starter-android](https://github.com/PunchThrough/ble-starter-android) - Source code accompanying the PunchThrough guide listed above.
    - [NordicSemiconductor/Android-nRF-Blinky](https://github.com/NordicSemiconductor/Android-nRF-Blinky) - Source code for an Android app that uses Nordic Semiconductor's [Android-BLE-Library](https://github.com/NordicSemiconductor/Android-BLE-Library/).
    - [android/connectivity-samples (BluetoothLeGatt)](https://github.com/android/connectivity-samples/tree/master/BluetoothLeGatt) - A compact `Service` and broadcast based example.

  11. stkent revised this gist Apr 25, 2020. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion android-bluetooth-low-energy-resources.md
    Original file line number Diff line number Diff line change
    @@ -30,7 +30,7 @@ Resources relevant to building Bluetooth Low Energy Android applications from sc
    ## Implementations

    - [NordicSemiconductor/Android-nRF-Blinky](https://github.com/NordicSemiconductor/Android-nRF-Blinky) - Source code for an Android app that uses Nordic Semiconductor's [Android-BLE-Library](https://github.com/NordicSemiconductor/Android-BLE-Library/).
    - [googlesamples/android-BluetoothLeGatt](https://github.com/googlesamples/android-BluetoothLeGatt) - A compact `Service` and broadcast based example.
    - [android/connectivity-samples (BluetoothLeGatt)](https://github.com/android/connectivity-samples/tree/master/BluetoothLeGatt) - A compact `Service` and broadcast based example.

    ## Android Source Code

  12. stkent revised this gist Apr 25, 2020. 1 changed file with 2 additions and 0 deletions.
    2 changes: 2 additions & 0 deletions android-bluetooth-low-energy-resources.md
    Original file line number Diff line number Diff line change
    @@ -60,6 +60,8 @@ Useful users, questions, answers, and comments from Stack Overflow's Q&A.

    ## Google Issues

    (You must sign in with a Google account to access these.)

    - "[Android 4.3: Bluetooth LE pretty instable](https://issuetracker.google.com/issues/36976711)"
    - "[NullPointerException in BluetoothGatt.java when disconnecting and closing](https://issuetracker.google.com/issues/37057260)" - Includes discussion regarding exactly when `BluetoothGatt.disconnect` and `BluetoothGatt.close` should be called.
    - "[Emulator and Bluetooth](https://issuetracker.google.com/issues/36972875)" - Requests the addition of Bluetooth support to Android emulators (via host device Bluetooth).
  13. stkent revised this gist Nov 30, 2019. 1 changed file with 0 additions and 1 deletion.
    1 change: 0 additions & 1 deletion android-bluetooth-low-energy-resources.md
    Original file line number Diff line number Diff line change
    @@ -16,7 +16,6 @@
    - [Beepiz/BleGattCoroutines](https://github.com/Beepiz/BleGattCoroutines) - For using Kotlin's coroutines to sidestep BLE callback hell.
    - [iDevicesInc/SweetBlue](https://github.com/iDevicesInc/SweetBlue/) (proprietary) - May be useful if you have more dollars than time, or if you are developing stability-critical applications.
    - [douglasjunior/AndroidBluetoothLibrary](https://github.com/douglasjunior/AndroidBluetoothLibrary).
    - [Beepiz/BleGattCoroutines](https://github.com/Beepiz/BleGattCoroutines) - For using Kotlin's Coroutines with BLE.

    # Building

  14. stkent revised this gist Nov 30, 2019. 1 changed file with 2 additions and 1 deletion.
    3 changes: 2 additions & 1 deletion android-bluetooth-low-energy-resources.md
    Original file line number Diff line number Diff line change
    @@ -14,8 +14,9 @@
    - [NordicSemiconductor/Android-BLE-Library](https://github.com/NordicSemiconductor/Android-BLE-Library/) - Contains production-ready implementations of many of the important components (queues, managers, etc.) for working with BLE on Android. Consider using this library as-is or browsing the source code as inspiration if building your own implementation.
    - [Polidea/RxAndroidBle](https://github.com/Polidea/RxAndroidBle) - For using RxJava with BLE.
    - [Beepiz/BleGattCoroutines](https://github.com/Beepiz/BleGattCoroutines) - For using Kotlin's coroutines to sidestep BLE callback hell.
    - [iDevicesInc/SweetBlue](https://github.com/iDevicesInc/SweetBlue/) (proprietary). May be useful if you have more dollars than time, or if you are developing stability-critical applications.
    - [iDevicesInc/SweetBlue](https://github.com/iDevicesInc/SweetBlue/) (proprietary) - May be useful if you have more dollars than time, or if you are developing stability-critical applications.
    - [douglasjunior/AndroidBluetoothLibrary](https://github.com/douglasjunior/AndroidBluetoothLibrary).
    - [Beepiz/BleGattCoroutines](https://github.com/Beepiz/BleGattCoroutines) - For using Kotlin's Coroutines with BLE.

    # Building

  15. stkent revised this gist Oct 15, 2019. 1 changed file with 2 additions and 2 deletions.
    4 changes: 2 additions & 2 deletions android-bluetooth-low-energy-resources.md
    Original file line number Diff line number Diff line change
    @@ -11,7 +11,7 @@

    # Libraries

    - [NordicSemiconductor/Android-BLE-Library](https://github.com/NordicSemiconductor/Android-BLE-Library/)
    - [NordicSemiconductor/Android-BLE-Library](https://github.com/NordicSemiconductor/Android-BLE-Library/) - Contains production-ready implementations of many of the important components (queues, managers, etc.) for working with BLE on Android. Consider using this library as-is or browsing the source code as inspiration if building your own implementation.
    - [Polidea/RxAndroidBle](https://github.com/Polidea/RxAndroidBle) - For using RxJava with BLE.
    - [Beepiz/BleGattCoroutines](https://github.com/Beepiz/BleGattCoroutines) - For using Kotlin's coroutines to sidestep BLE callback hell.
    - [iDevicesInc/SweetBlue](https://github.com/iDevicesInc/SweetBlue/) (proprietary). May be useful if you have more dollars than time, or if you are developing stability-critical applications.
    @@ -29,7 +29,7 @@ Resources relevant to building Bluetooth Low Energy Android applications from sc

    ## Implementations

    - [NordicSemiconductor/puck-central-android](https://github.com/NordicSemiconductor/puck-central-android) - Source code for an Android app associated with Nordic Semiconductor's [Puck platform](http://nordicsemiconductor.github.io/puck/). This implementation is pretty complete. In particular the serial operations logic within the [operations types](https://github.com/NordicSemiconductor/puck-central-android/tree/master/PuckCentral/app/src/main/java/no/nordicsemi/puckcentral/bluetooth/gatt/operations) and [operation manager implementation](https://github.com/NordicSemiconductor/puck-central-android/blob/master/PuckCentral/app/src/main/java/no/nordicsemi/puckcentral/bluetooth/gatt/GattManager.java) includes several optional but valuable refinements.
    - [NordicSemiconductor/Android-nRF-Blinky](https://github.com/NordicSemiconductor/Android-nRF-Blinky) - Source code for an Android app that uses Nordic Semiconductor's [Android-BLE-Library](https://github.com/NordicSemiconductor/Android-BLE-Library/).
    - [googlesamples/android-BluetoothLeGatt](https://github.com/googlesamples/android-BluetoothLeGatt) - A compact `Service` and broadcast based example.

    ## Android Source Code
  16. stkent revised this gist Oct 29, 2018. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion android-bluetooth-low-energy-resources.md
    Original file line number Diff line number Diff line change
    @@ -14,7 +14,7 @@
    - [NordicSemiconductor/Android-BLE-Library](https://github.com/NordicSemiconductor/Android-BLE-Library/)
    - [Polidea/RxAndroidBle](https://github.com/Polidea/RxAndroidBle) - For using RxJava with BLE.
    - [Beepiz/BleGattCoroutines](https://github.com/Beepiz/BleGattCoroutines) - For using Kotlin's coroutines to sidestep BLE callback hell.
    - [iDevicesInc/SweetBlue](https://github.com/iDevicesInc/SweetBlue/)(proprietary). May be useful if you have more dollars than time, or if you are developing stability-critical applications.
    - [iDevicesInc/SweetBlue](https://github.com/iDevicesInc/SweetBlue/) (proprietary). May be useful if you have more dollars than time, or if you are developing stability-critical applications.
    - [douglasjunior/AndroidBluetoothLibrary](https://github.com/douglasjunior/AndroidBluetoothLibrary).

    # Building
  17. stkent revised this gist Oct 29, 2018. 1 changed file with 5 additions and 4 deletions.
    9 changes: 5 additions & 4 deletions android-bluetooth-low-energy-resources.md
    Original file line number Diff line number Diff line change
    @@ -11,10 +11,11 @@

    # Libraries

    - [iDevicesInc/SweetBlue](https://github.com/iDevicesInc/SweetBlue/) - A proprietary library that abstracts away many of Android BLE challenges. May be useful if you have more dollars than time, or if you are developing stability-critical applications.
    - [Polidea/RxAndroidBle](https://github.com/Polidea/RxAndroidBle) - A reactive BLE wrapper, useful for one-shot connections and operations (is not set up to support persistent connections).
    - [douglasjunior/AndroidBluetoothLibrary](https://github.com/douglasjunior/AndroidBluetoothLibrary) - MIT-licensed Android BLE wrapper. I haven't personally used this, but it looks good.
    - [Beepiz/BleGattCoroutines](https://github.com/Beepiz/BleGattCoroutines) - Again, not a library I've used, but a natural application of Kotlin's coroutines to sidestep callback hell.
    - [NordicSemiconductor/Android-BLE-Library](https://github.com/NordicSemiconductor/Android-BLE-Library/)
    - [Polidea/RxAndroidBle](https://github.com/Polidea/RxAndroidBle) - For using RxJava with BLE.
    - [Beepiz/BleGattCoroutines](https://github.com/Beepiz/BleGattCoroutines) - For using Kotlin's coroutines to sidestep BLE callback hell.
    - [iDevicesInc/SweetBlue](https://github.com/iDevicesInc/SweetBlue/)(proprietary). May be useful if you have more dollars than time, or if you are developing stability-critical applications.
    - [douglasjunior/AndroidBluetoothLibrary](https://github.com/douglasjunior/AndroidBluetoothLibrary).

    # Building

  18. stkent revised this gist Oct 1, 2018. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion android-bluetooth-low-energy-resources.md
    Original file line number Diff line number Diff line change
    @@ -50,7 +50,7 @@ Useful users, questions, answers, and comments from Stack Overflow's Q&A.
    - "[How to programmatically force bluetooth low energy service discovery on Android without using cache](https://stackoverflow.com/questions/22596951)" - [This answer](https://stackoverflow.com/a/22709467/2911458) formed the basis of my refined service cache-clearing method.
    - "[Android 4.3: How to connect to multiple Bluetooth Low Energy devices](https://stackoverflow.com/questions/21237093)" - [This answer](https://stackoverflow.com/a/30455650/2911458) discusses the serial nature of the Bluetooth APIs and indicates that things work the same for web and iOS.
    - "[Android BLE API: GATT Notification not received](https://stackoverflow.com/questions/17910322)"
    - "[RxAndroidBle keeping a persistant connection + Write/Notification handling](https://stackoverflow.com/questions/38902913)" - [This answer](https://stackoverflow.com/a/38919653/2911458) confirms that RxAndroidBle was not designed to accommodate persistent connections.
    - "[RxAndroidBle keeping a persistant connection + Write/Notification handling](https://stackoverflow.com/questions/38902913)" - [This answer](https://stackoverflow.com/a/38919653/2911458) confirms that RxAndroidBle was not designed to accommodate persistent connections. UPDATE: apparently this is possible; see author's tweet [here](https://twitter.com/DSeweryn/status/946422910926950400).
    - "[Location requirement to scan for BLE devices](https://stackoverflow.com/questions/40186200)" - [This answer](https://stackoverflow.com/a/40187238/2911458) provides some context regarding the location permission requirement for scanning.
    - "[Is the native Android BLE implementation synchronous in nature?](https://stackoverflow.com/questions/18011816)" - [This answer](https://stackoverflow.com/a/18054654/2911458) confirms (from a Samsung perspective) that BLE operations should be performed serially.
    - "[clientIf field in Android BluetoothGatt class](https://stackoverflow.com/questions/34158315)" - Some information on the `clientIf` value that's logged with almost all Android BLE calls.
  19. stkent revised this gist Oct 1, 2018. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion android-bluetooth-low-energy-resources.md
    Original file line number Diff line number Diff line change
    @@ -41,7 +41,7 @@ Resources relevant to building Bluetooth Low Energy Android applications from sc

    Useful users, questions, answers, and comments from Stack Overflow's Q&A.

    - [Emil](https://stackoverflow.com/users/556495/emil) - A user who consistently provides high-quality and detailed information regarding BLE on Android. Worth browsing his answers!
    - [Emil](https://stackoverflow.com/users/556495/emil) - A user who consistently provides high-quality and detailed information regarding BLE on Android. Worth browsing their answers!
    - "[Android 4.3 Bluetooth Low Energy unstable](https://stackoverflow.com/questions/17870189/android-4-3-bluetooth-low-energy-unstable)" - In particular, [this answer](https://stackoverflow.com/a/18889509/2911458) is a great overview and includes a hint regarding Wi-Fi/BLE interactions that I haven't seen elsewhere.
    - "[How to detect Bluetooth state change using a broadcast receiver?](https://stackoverflow.com/questions/24888023/how-to-detect-bluetooth-state-change-using-a-broadcast-receiver)"
    - "[Difference between close() and disconnect() in Android Bluetooth API?](https://stackoverflow.com/questions/23110295/difference-between-close-and-disconnect-in-android-bluetooth-api)"
  20. stkent revised this gist Jan 2, 2018. 1 changed file with 1 addition and 0 deletions.
    1 change: 1 addition & 0 deletions android-bluetooth-low-energy-resources.md
    Original file line number Diff line number Diff line change
    @@ -14,6 +14,7 @@
    - [iDevicesInc/SweetBlue](https://github.com/iDevicesInc/SweetBlue/) - A proprietary library that abstracts away many of Android BLE challenges. May be useful if you have more dollars than time, or if you are developing stability-critical applications.
    - [Polidea/RxAndroidBle](https://github.com/Polidea/RxAndroidBle) - A reactive BLE wrapper, useful for one-shot connections and operations (is not set up to support persistent connections).
    - [douglasjunior/AndroidBluetoothLibrary](https://github.com/douglasjunior/AndroidBluetoothLibrary) - MIT-licensed Android BLE wrapper. I haven't personally used this, but it looks good.
    - [Beepiz/BleGattCoroutines](https://github.com/Beepiz/BleGattCoroutines) - Again, not a library I've used, but a natural application of Kotlin's coroutines to sidestep callback hell.

    # Building

  21. stkent revised this gist Oct 6, 2017. 1 changed file with 1 addition and 2 deletions.
    3 changes: 1 addition & 2 deletions android-bluetooth-low-energy-resources.md
    Original file line number Diff line number Diff line change
    @@ -49,8 +49,7 @@ Useful users, questions, answers, and comments from Stack Overflow's Q&A.
    - "[How to programmatically force bluetooth low energy service discovery on Android without using cache](https://stackoverflow.com/questions/22596951)" - [This answer](https://stackoverflow.com/a/22709467/2911458) formed the basis of my refined service cache-clearing method.
    - "[Android 4.3: How to connect to multiple Bluetooth Low Energy devices](https://stackoverflow.com/questions/21237093)" - [This answer](https://stackoverflow.com/a/30455650/2911458) discusses the serial nature of the Bluetooth APIs and indicates that things work the same for web and iOS.
    - "[Android BLE API: GATT Notification not received](https://stackoverflow.com/questions/17910322)"
    - "[RxAndroidBle keeping a persistant connection + Write/Notification handling](https://stackoverflow.com/questions/38902913)"
    - "[This answer](https://stackoverflow.com/a/38919653/2911458)" confirms that RxAndroidBle was not designed to accommodate persistent connections.
    - "[RxAndroidBle keeping a persistant connection + Write/Notification handling](https://stackoverflow.com/questions/38902913)" - [This answer](https://stackoverflow.com/a/38919653/2911458) confirms that RxAndroidBle was not designed to accommodate persistent connections.
    - "[Location requirement to scan for BLE devices](https://stackoverflow.com/questions/40186200)" - [This answer](https://stackoverflow.com/a/40187238/2911458) provides some context regarding the location permission requirement for scanning.
    - "[Is the native Android BLE implementation synchronous in nature?](https://stackoverflow.com/questions/18011816)" - [This answer](https://stackoverflow.com/a/18054654/2911458) confirms (from a Samsung perspective) that BLE operations should be performed serially.
    - "[clientIf field in Android BluetoothGatt class](https://stackoverflow.com/questions/34158315)" - Some information on the `clientIf` value that's logged with almost all Android BLE calls.
  22. stkent revised this gist Oct 6, 2017. 1 changed file with 2 additions and 1 deletion.
    3 changes: 2 additions & 1 deletion android-bluetooth-low-energy-resources.md
    Original file line number Diff line number Diff line change
    @@ -49,7 +49,8 @@ Useful users, questions, answers, and comments from Stack Overflow's Q&A.
    - "[How to programmatically force bluetooth low energy service discovery on Android without using cache](https://stackoverflow.com/questions/22596951)" - [This answer](https://stackoverflow.com/a/22709467/2911458) formed the basis of my refined service cache-clearing method.
    - "[Android 4.3: How to connect to multiple Bluetooth Low Energy devices](https://stackoverflow.com/questions/21237093)" - [This answer](https://stackoverflow.com/a/30455650/2911458) discusses the serial nature of the Bluetooth APIs and indicates that things work the same for web and iOS.
    - "[Android BLE API: GATT Notification not received](https://stackoverflow.com/questions/17910322)"
    - "[RxAndroidBle keeping a persistant connection + Write/Notification handling](https://stackoverflow.com/questions/38902913)" - "[This answer](https://stackoverflow.com/a/38919653/2911458)" confirms that RxAndroidBle was not designed to accommodate persistent connections.
    - "[RxAndroidBle keeping a persistant connection + Write/Notification handling](https://stackoverflow.com/questions/38902913)"
    - "[This answer](https://stackoverflow.com/a/38919653/2911458)" confirms that RxAndroidBle was not designed to accommodate persistent connections.
    - "[Location requirement to scan for BLE devices](https://stackoverflow.com/questions/40186200)" - [This answer](https://stackoverflow.com/a/40187238/2911458) provides some context regarding the location permission requirement for scanning.
    - "[Is the native Android BLE implementation synchronous in nature?](https://stackoverflow.com/questions/18011816)" - [This answer](https://stackoverflow.com/a/18054654/2911458) confirms (from a Samsung perspective) that BLE operations should be performed serially.
    - "[clientIf field in Android BluetoothGatt class](https://stackoverflow.com/questions/34158315)" - Some information on the `clientIf` value that's logged with almost all Android BLE calls.
  23. stkent revised this gist Sep 30, 2017. 1 changed file with 5 additions and 1 deletion.
    6 changes: 5 additions & 1 deletion android-bluetooth-low-energy-resources.md
    Original file line number Diff line number Diff line change
    @@ -1,6 +1,10 @@
    # Background

    The best resources for those new to Bluetooth Low Energy on the Android platform.
    ## Platform-Agnostic

    - "[Introduction to Bluetooth Low Energy](https://learn.adafruit.com/introduction-to-bluetooth-low-energy/introduction)" by Adafruit.

    ## Android-Specific

    - "[Android Lollipop: Bluetooth LE Matures](https://www.youtube.com/watch?v=qx55Sa8UZAQ)" - A nice overview video by [Dave Smith](https://twitter.com/devunwired). Focuses on Lollipop and newer.
    - Fragmented Episode 45: "[Bluetooth (LE) with Dave (devunwired) Smith](http://fragmentedpodcast.com/episodes/45/)" - Another great Dave Smith overview if you prefer the podcast format!
  24. stkent revised this gist Sep 18, 2017. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion android-bluetooth-low-energy-resources.md
    Original file line number Diff line number Diff line change
    @@ -3,7 +3,7 @@
    The best resources for those new to Bluetooth Low Energy on the Android platform.

    - "[Android Lollipop: Bluetooth LE Matures](https://www.youtube.com/watch?v=qx55Sa8UZAQ)" - A nice overview video by [Dave Smith](https://twitter.com/devunwired). Focuses on Lollipop and newer.
    - [Fragmented Episode 45: "Bluetooth (LE) with Dave (devunwired) Smith"](http://fragmentedpodcast.com/episodes/45/) - Another great Dave Smith overview if you prefer the podcast format!
    - Fragmented Episode 45: "[Bluetooth (LE) with Dave (devunwired) Smith](http://fragmentedpodcast.com/episodes/45/)" - Another great Dave Smith overview if you prefer the podcast format!

    # Libraries

  25. stkent revised this gist Sep 18, 2017. 1 changed file with 21 additions and 21 deletions.
    42 changes: 21 additions & 21 deletions android-bluetooth-low-energy-resources.md
    Original file line number Diff line number Diff line change
    @@ -2,7 +2,7 @@

    The best resources for those new to Bluetooth Low Energy on the Android platform.

    - ["Android Lollipop: Bluetooth LE Matures"](https://www.youtube.com/watch?v=qx55Sa8UZAQ) - A nice overview video by [Dave Smith](https://twitter.com/devunwired). Focuses on Lollipop and newer.
    - "[Android Lollipop: Bluetooth LE Matures](https://www.youtube.com/watch?v=qx55Sa8UZAQ)" - A nice overview video by [Dave Smith](https://twitter.com/devunwired). Focuses on Lollipop and newer.
    - [Fragmented Episode 45: "Bluetooth (LE) with Dave (devunwired) Smith"](http://fragmentedpodcast.com/episodes/45/) - Another great Dave Smith overview if you prefer the podcast format!

    # Libraries
    @@ -37,26 +37,26 @@ Resources relevant to building Bluetooth Low Energy Android applications from sc
    Useful users, questions, answers, and comments from Stack Overflow's Q&A.

    - [Emil](https://stackoverflow.com/users/556495/emil) - A user who consistently provides high-quality and detailed information regarding BLE on Android. Worth browsing his answers!
    - ["Android 4.3 Bluetooth Low Energy unstable"](https://stackoverflow.com/questions/17870189/android-4-3-bluetooth-low-energy-unstable) - In particular, [this answer](https://stackoverflow.com/a/18889509/2911458) is a great overview and includes a hint regarding Wi-Fi/BLE interactions that I haven't seen elsewhere.
    - [How to detect Bluetooth state change using a broadcast receiver?](https://stackoverflow.com/questions/24888023/how-to-detect-bluetooth-state-change-using-a-broadcast-receiver)
    - [Difference between close() and disconnect() in Android Bluetooth API?](https://stackoverflow.com/questions/23110295/difference-between-close-and-disconnect-in-android-bluetooth-api)
    - [Android - Could not connect to bluetooth device on Lollipop](https://stackoverflow.com/questions/28018722/android-could-not-connect-to-bluetooth-device-on-lollipop) - [This answer](https://stackoverflow.com/a/29092645/2911458) provides some tips regarding the transport type flag passed to `BluetoothDevice.connectGatt`.
    - [Android Bluetooth LE: Not discovering services after connection](https://stackoverflow.com/questions/24025486/android-bluetooth-le-not-discovering-services-after-connection) - [This comment](https://stackoverflow.com/questions/24025486/android-bluetooth-le-not-discovering-services-after-connection#comment70743389_24044509) indicates that one should delay calls to `BluetoothGatt.close` until either (1) disconnection completes, or (2) a predefined period of time elapses.
    - [How to programmatically force bluetooth low energy service discovery on Android without using cache](https://stackoverflow.com/questions/22596951) - [This answer](https://stackoverflow.com/a/22709467/2911458) formed the basis of my refined service cache-clearing method.
    - [Android 4.3: How to connect to multiple Bluetooth Low Energy devices](https://stackoverflow.com/questions/21237093) - [This answer](https://stackoverflow.com/a/30455650/2911458) discusses the serial nature of the Bluetooth APIs and indicates that things work the same for web and iOS.
    - [Android BLE API: GATT Notification not received](https://stackoverflow.com/questions/17910322)
    - [RxAndroidBle keeping a persistant connection + Write/Notification handling](https://stackoverflow.com/questions/38902913) - [This answer](https://stackoverflow.com/a/38919653/2911458) confirms that RxAndroidBle was not designed to accommodate persistent connections.
    - [Location requirement to scan for BLE devices](https://stackoverflow.com/questions/40186200) - [This answer](https://stackoverflow.com/a/40187238/2911458) provides some context regarding the location permission requirement for scanning.
    - [Is the native Android BLE implementation synchronous in nature?](https://stackoverflow.com/questions/18011816) - [This answer](https://stackoverflow.com/a/18054654/2911458) confirms (from a Samsung perspective) that BLE operations should be performed serially.
    - [clientIf field in Android BluetoothGatt class](https://stackoverflow.com/questions/34158315) - Some information on the `clientIf` value that's logged with almost all Android BLE calls.
    - [Why does setCharacteristicNotification() not actually enable notifications?](https://stackoverflow.com/questions/22817005)
    - [Android Bluetooth Low Energy Characteristic notification count limit: does this vary by device?](https://stackoverflow.com/questions/42771904) - Clarification that the stack's 15 characteristic notifications limit is a limit per peripheral/server rather than per central/client/mobile device.
    - "[Android 4.3 Bluetooth Low Energy unstable](https://stackoverflow.com/questions/17870189/android-4-3-bluetooth-low-energy-unstable)" - In particular, [this answer](https://stackoverflow.com/a/18889509/2911458) is a great overview and includes a hint regarding Wi-Fi/BLE interactions that I haven't seen elsewhere.
    - "[How to detect Bluetooth state change using a broadcast receiver?](https://stackoverflow.com/questions/24888023/how-to-detect-bluetooth-state-change-using-a-broadcast-receiver)"
    - "[Difference between close() and disconnect() in Android Bluetooth API?](https://stackoverflow.com/questions/23110295/difference-between-close-and-disconnect-in-android-bluetooth-api)"
    - "[Android - Could not connect to bluetooth device on Lollipop](https://stackoverflow.com/questions/28018722/android-could-not-connect-to-bluetooth-device-on-lollipop)" - [This answer](https://stackoverflow.com/a/29092645/2911458) provides some tips regarding the transport type flag passed to `BluetoothDevice.connectGatt`.
    - "[Android Bluetooth LE: Not discovering services after connection](https://stackoverflow.com/questions/24025486/android-bluetooth-le-not-discovering-services-after-connection)" - [This comment](https://stackoverflow.com/questions/24025486/android-bluetooth-le-not-discovering-services-after-connection#comment70743389_24044509) indicates that one should delay calls to `BluetoothGatt.close` until either (1) disconnection completes, or (2) a predefined period of time elapses.
    - "[How to programmatically force bluetooth low energy service discovery on Android without using cache](https://stackoverflow.com/questions/22596951)" - [This answer](https://stackoverflow.com/a/22709467/2911458) formed the basis of my refined service cache-clearing method.
    - "[Android 4.3: How to connect to multiple Bluetooth Low Energy devices](https://stackoverflow.com/questions/21237093)" - [This answer](https://stackoverflow.com/a/30455650/2911458) discusses the serial nature of the Bluetooth APIs and indicates that things work the same for web and iOS.
    - "[Android BLE API: GATT Notification not received](https://stackoverflow.com/questions/17910322)"
    - "[RxAndroidBle keeping a persistant connection + Write/Notification handling](https://stackoverflow.com/questions/38902913)" - "[This answer](https://stackoverflow.com/a/38919653/2911458)" confirms that RxAndroidBle was not designed to accommodate persistent connections.
    - "[Location requirement to scan for BLE devices](https://stackoverflow.com/questions/40186200)" - [This answer](https://stackoverflow.com/a/40187238/2911458) provides some context regarding the location permission requirement for scanning.
    - "[Is the native Android BLE implementation synchronous in nature?](https://stackoverflow.com/questions/18011816)" - [This answer](https://stackoverflow.com/a/18054654/2911458) confirms (from a Samsung perspective) that BLE operations should be performed serially.
    - "[clientIf field in Android BluetoothGatt class](https://stackoverflow.com/questions/34158315)" - Some information on the `clientIf` value that's logged with almost all Android BLE calls.
    - "[Why does setCharacteristicNotification() not actually enable notifications?](https://stackoverflow.com/questions/22817005)"
    - "[Android Bluetooth Low Energy Characteristic notification count limit: does this vary by device?](https://stackoverflow.com/questions/42771904)" - Clarification that the stack's 15 characteristic notifications limit is a limit per peripheral/server rather than per central/client/mobile device.

    ## Google Issues

    - [Android 4.3: Bluetooth LE pretty instable](https://issuetracker.google.com/issues/36976711)
    - [NullPointerException in BluetoothGatt.java when disconnecting and closing](https://issuetracker.google.com/issues/37057260) - Includes discussion regarding exactly when `BluetoothGatt.disconnect` and `BluetoothGatt.close` should be called.
    - [Emulator and Bluetooth](https://issuetracker.google.com/issues/36972875) - Requests the addition of Bluetooth support to Android emulators (via host device Bluetooth).
    - [Bluetooth permission request dialog](https://issuetracker.google.com/u/2/issues/36979302) - Bug report related to weird window pop-up while programmatically prompting user to enable Bluetooth.
    - [Get BLE scan result using 'BluetoothLeScanner.startScan' must open Location Service in Android 6.0](https://issuetracker.google.com/u/1/issues/37065090) - Long thread related to location permissions and services requirements.
    - [[BLE] Android does not discover services if device supports Service Changed](https://issuetracker.google.com/u/1/issues/37012916) - Thread related to service caching and how to skip the cache.
    - "[Android 4.3: Bluetooth LE pretty instable](https://issuetracker.google.com/issues/36976711)"
    - "[NullPointerException in BluetoothGatt.java when disconnecting and closing](https://issuetracker.google.com/issues/37057260)" - Includes discussion regarding exactly when `BluetoothGatt.disconnect` and `BluetoothGatt.close` should be called.
    - "[Emulator and Bluetooth](https://issuetracker.google.com/issues/36972875)" - Requests the addition of Bluetooth support to Android emulators (via host device Bluetooth).
    - "[Bluetooth permission request dialog](https://issuetracker.google.com/u/2/issues/36979302)" - Bug report related to weird window pop-up while programmatically prompting user to enable Bluetooth.
    - "[Get BLE scan result using 'BluetoothLeScanner.startScan' must open Location Service in Android 6.0](https://issuetracker.google.com/u/1/issues/37065090)" - Long thread related to location permissions and services requirements.
    - "[[BLE] Android does not discover services if device supports Service Changed](https://issuetracker.google.com/u/1/issues/37012916)" - Thread related to service caching and how to skip the cache.
  26. stkent revised this gist Sep 18, 2017. 1 changed file with 5 additions and 5 deletions.
    10 changes: 5 additions & 5 deletions android-bluetooth-low-energy-resources.md
    Original file line number Diff line number Diff line change
    @@ -2,8 +2,8 @@

    The best resources for those new to Bluetooth Low Energy on the Android platform.

    - [_Android Lollipop: Bluetooth LE Matures_](https://www.youtube.com/watch?v=qx55Sa8UZAQ) - A nice overview video by [Dave Smith](https://twitter.com/devunwired). Focuses on Lollipop and newer.
    - [Fragmented Episode 45: _Bluetooth (LE) with Dave (devunwired) Smith_](http://fragmentedpodcast.com/episodes/45/) - Another great Dave Smith overview if you prefer the podcast format!
    - ["Android Lollipop: Bluetooth LE Matures"](https://www.youtube.com/watch?v=qx55Sa8UZAQ) - A nice overview video by [Dave Smith](https://twitter.com/devunwired). Focuses on Lollipop and newer.
    - [Fragmented Episode 45: "Bluetooth (LE) with Dave (devunwired) Smith"](http://fragmentedpodcast.com/episodes/45/) - Another great Dave Smith overview if you prefer the podcast format!

    # Libraries

    @@ -17,8 +17,8 @@ Resources relevant to building Bluetooth Low Energy Android applications from sc

    ## In-Depth Guides

    - _Bluetooth Low Energy on Android: Top Tips For The Tricky Bits_ by [Stuart Kent](https://twitter.com/skentphd) ([slides](https://speakerdeck.com/stkent/bluetooth-low-energy-on-android-top-tips-for-the-tricky-bits-video), [video](https://www.youtube.com/watch?v=jDykHjn-4Ng)) - My own talk!
    - _Bluetooth Low Energy on Android_ by [Erik Hellman](https://twitter.com/ErikHellman) ([post 1](https://hellsoft.se/bluetooth-low-energy-on-android-part-1-1aa8bf60717d)) ([post 2](https://hellsoft.se/bluetooth-low-energy-on-android-part-2-8fdb8ee3bfe9)) - Comprehensive introductory articles.
    - "Bluetooth Low Energy on Android: Top Tips For The Tricky Bits" by [Stuart Kent](https://twitter.com/skentphd) ([slides](https://speakerdeck.com/stkent/bluetooth-low-energy-on-android-top-tips-for-the-tricky-bits-video), [video](https://www.youtube.com/watch?v=jDykHjn-4Ng)) - My own talk!
    - "Bluetooth Low Energy on Android" series by [Erik Hellman](https://twitter.com/ErikHellman) ([post 1](https://hellsoft.se/bluetooth-low-energy-on-android-part-1-1aa8bf60717d)) ([post 2](https://hellsoft.se/bluetooth-low-energy-on-android-part-2-8fdb8ee3bfe9)) - Comprehensive introductory articles.
    - [Android BLE Issues](https://github.com/iDevicesInc/SweetBlue/wiki/Android-BLE-Issues) - A fairly complete list of symptoms you are likely to encounter while working with Android's BLE stack. Some apply to pre-Lollipop only, but many still exist and occur.

    ## Implementations
    @@ -37,7 +37,7 @@ Resources relevant to building Bluetooth Low Energy Android applications from sc
    Useful users, questions, answers, and comments from Stack Overflow's Q&A.

    - [Emil](https://stackoverflow.com/users/556495/emil) - A user who consistently provides high-quality and detailed information regarding BLE on Android. Worth browsing his answers!
    - [Android 4.3 Bluetooth Low Energy unstable](https://stackoverflow.com/questions/17870189/android-4-3-bluetooth-low-energy-unstable) - In particular, [this answer](https://stackoverflow.com/a/18889509/2911458) is a great overview and includes a hint regarding Wi-Fi/BLE interactions that I haven't seen elsewhere.
    - ["Android 4.3 Bluetooth Low Energy unstable"](https://stackoverflow.com/questions/17870189/android-4-3-bluetooth-low-energy-unstable) - In particular, [this answer](https://stackoverflow.com/a/18889509/2911458) is a great overview and includes a hint regarding Wi-Fi/BLE interactions that I haven't seen elsewhere.
    - [How to detect Bluetooth state change using a broadcast receiver?](https://stackoverflow.com/questions/24888023/how-to-detect-bluetooth-state-change-using-a-broadcast-receiver)
    - [Difference between close() and disconnect() in Android Bluetooth API?](https://stackoverflow.com/questions/23110295/difference-between-close-and-disconnect-in-android-bluetooth-api)
    - [Android - Could not connect to bluetooth device on Lollipop](https://stackoverflow.com/questions/28018722/android-could-not-connect-to-bluetooth-device-on-lollipop) - [This answer](https://stackoverflow.com/a/29092645/2911458) provides some tips regarding the transport type flag passed to `BluetoothDevice.connectGatt`.
  27. stkent revised this gist Sep 18, 2017. 1 changed file with 4 additions and 4 deletions.
    8 changes: 4 additions & 4 deletions android-bluetooth-low-energy-resources.md
    Original file line number Diff line number Diff line change
    @@ -2,8 +2,8 @@

    The best resources for those new to Bluetooth Low Energy on the Android platform.

    - [Android Lollipop: Bluetooth LE Matures](https://www.youtube.com/watch?v=qx55Sa8UZAQ) - A nice overview video by [Dave Smith](https://twitter.com/devunwired). Focuses on Lollipop and newer.
    - [Fragmented Episode 45: Bluetooth (LE) with Dave (devunwired) Smith](http://fragmentedpodcast.com/episodes/45/) - Another great Dave Smith overview if you prefer the podcast format!
    - [_Android Lollipop: Bluetooth LE Matures_](https://www.youtube.com/watch?v=qx55Sa8UZAQ) - A nice overview video by [Dave Smith](https://twitter.com/devunwired). Focuses on Lollipop and newer.
    - [Fragmented Episode 45: _Bluetooth (LE) with Dave (devunwired) Smith_](http://fragmentedpodcast.com/episodes/45/) - Another great Dave Smith overview if you prefer the podcast format!

    # Libraries

    @@ -17,8 +17,8 @@ Resources relevant to building Bluetooth Low Energy Android applications from sc

    ## In-Depth Guides

    - Bluetooth Low Energy on Android: Top Tips For The Tricky Bits by [Stuart Kent](https://twitter.com/skentphd) ([slides](https://speakerdeck.com/stkent/bluetooth-low-energy-on-android-top-tips-for-the-tricky-bits-video), [video](https://www.youtube.com/watch?v=jDykHjn-4Ng)) - My own talk!
    - Bluetooth Low Energy on Android by [Erik Hellman](https://twitter.com/ErikHellman) ([part 1](https://hellsoft.se/bluetooth-low-energy-on-android-part-1-1aa8bf60717d)) ([part 2](https://hellsoft.se/bluetooth-low-energy-on-android-part-2-8fdb8ee3bfe9)) - Comprehensive introductory articles.
    - _Bluetooth Low Energy on Android: Top Tips For The Tricky Bits_ by [Stuart Kent](https://twitter.com/skentphd) ([slides](https://speakerdeck.com/stkent/bluetooth-low-energy-on-android-top-tips-for-the-tricky-bits-video), [video](https://www.youtube.com/watch?v=jDykHjn-4Ng)) - My own talk!
    - _Bluetooth Low Energy on Android_ by [Erik Hellman](https://twitter.com/ErikHellman) ([post 1](https://hellsoft.se/bluetooth-low-energy-on-android-part-1-1aa8bf60717d)) ([post 2](https://hellsoft.se/bluetooth-low-energy-on-android-part-2-8fdb8ee3bfe9)) - Comprehensive introductory articles.
    - [Android BLE Issues](https://github.com/iDevicesInc/SweetBlue/wiki/Android-BLE-Issues) - A fairly complete list of symptoms you are likely to encounter while working with Android's BLE stack. Some apply to pre-Lollipop only, but many still exist and occur.

    ## Implementations
  28. stkent revised this gist Sep 18, 2017. 1 changed file with 2 additions and 2 deletions.
    4 changes: 2 additions & 2 deletions android-bluetooth-low-energy-resources.md
    Original file line number Diff line number Diff line change
    @@ -17,8 +17,8 @@ Resources relevant to building Bluetooth Low Energy Android applications from sc

    ## In-Depth Guides

    - Bluetooth Low Energy on Android: Top Tips For The Tricky Bits by Stuart Kent ([slides](https://speakerdeck.com/stkent/bluetooth-low-energy-on-android-top-tips-for-the-tricky-bits-video), [video](https://www.youtube.com/watch?v=jDykHjn-4Ng)) - My own talk!
    - Bluetooth Low Energy on Android by Erik Hellman ([part 1](https://hellsoft.se/bluetooth-low-energy-on-android-part-1-1aa8bf60717d)) ([part 2](https://hellsoft.se/bluetooth-low-energy-on-android-part-2-8fdb8ee3bfe9)) - Comprehensive introductory articles.
    - Bluetooth Low Energy on Android: Top Tips For The Tricky Bits by [Stuart Kent](https://twitter.com/skentphd) ([slides](https://speakerdeck.com/stkent/bluetooth-low-energy-on-android-top-tips-for-the-tricky-bits-video), [video](https://www.youtube.com/watch?v=jDykHjn-4Ng)) - My own talk!
    - Bluetooth Low Energy on Android by [Erik Hellman](https://twitter.com/ErikHellman) ([part 1](https://hellsoft.se/bluetooth-low-energy-on-android-part-1-1aa8bf60717d)) ([part 2](https://hellsoft.se/bluetooth-low-energy-on-android-part-2-8fdb8ee3bfe9)) - Comprehensive introductory articles.
    - [Android BLE Issues](https://github.com/iDevicesInc/SweetBlue/wiki/Android-BLE-Issues) - A fairly complete list of symptoms you are likely to encounter while working with Android's BLE stack. Some apply to pre-Lollipop only, but many still exist and occur.

    ## Implementations
  29. stkent revised this gist Sep 18, 2017. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion android-bluetooth-low-energy-resources.md
    Original file line number Diff line number Diff line change
    @@ -2,7 +2,7 @@

    The best resources for those new to Bluetooth Low Energy on the Android platform.

    - [Android Lollipop: Bluetooth LE Matures](https://www.youtube.com/watch?v=qx55Sa8UZAQ) - A nice overview video by Dave Smith. Focuses on Lollipop and newer.
    - [Android Lollipop: Bluetooth LE Matures](https://www.youtube.com/watch?v=qx55Sa8UZAQ) - A nice overview video by [Dave Smith](https://twitter.com/devunwired). Focuses on Lollipop and newer.
    - [Fragmented Episode 45: Bluetooth (LE) with Dave (devunwired) Smith](http://fragmentedpodcast.com/episodes/45/) - Another great Dave Smith overview if you prefer the podcast format!

    # Libraries
  30. stkent revised this gist Sep 18, 2017. 1 changed file with 2 additions and 2 deletions.
    4 changes: 2 additions & 2 deletions android-bluetooth-low-energy-resources.md
    Original file line number Diff line number Diff line change
    @@ -17,8 +17,8 @@ Resources relevant to building Bluetooth Low Energy Android applications from sc

    ## In-Depth Guides

    - Bluetooth Low Energy on Android: Top Tips For The Tricky Bits ([slides](https://speakerdeck.com/stkent/bluetooth-low-energy-on-android-top-tips-for-the-tricky-bits-video), [video](https://www.youtube.com/watch?v=jDykHjn-4Ng)) - My own talk!
    - Erik Hellman's in-progress blog post series ([part 1](https://hellsoft.se/bluetooth-low-energy-on-android-part-1-1aa8bf60717d)) ([part 2](https://hellsoft.se/bluetooth-low-energy-on-android-part-2-8fdb8ee3bfe9)) - Comprehensive introductory articles.
    - Bluetooth Low Energy on Android: Top Tips For The Tricky Bits by Stuart Kent ([slides](https://speakerdeck.com/stkent/bluetooth-low-energy-on-android-top-tips-for-the-tricky-bits-video), [video](https://www.youtube.com/watch?v=jDykHjn-4Ng)) - My own talk!
    - Bluetooth Low Energy on Android by Erik Hellman ([part 1](https://hellsoft.se/bluetooth-low-energy-on-android-part-1-1aa8bf60717d)) ([part 2](https://hellsoft.se/bluetooth-low-energy-on-android-part-2-8fdb8ee3bfe9)) - Comprehensive introductory articles.
    - [Android BLE Issues](https://github.com/iDevicesInc/SweetBlue/wiki/Android-BLE-Issues) - A fairly complete list of symptoms you are likely to encounter while working with Android's BLE stack. Some apply to pre-Lollipop only, but many still exist and occur.

    ## Implementations