Topics:
- Introduction to Bluetooth
- Android Bluetooth API - Interfaces & Classes
- Bluetooth Permissions
- Examples: Working with Bluetooth:
- How to check Bluetooth is turned on or off on device?
- How to turn Bluetooth on or off using Java code?
- Common errors while working with Bluetooth:
- RuntimeException: Unable to start activity Need BLUETOOTH permission
- SecurityException: Need BLUETOOTH ADMIN permissicacheNameAndAddresson
1. Introduction to Bluetooth
Bluetooth is a wireless technology that is used for transferring data between devices such as desktops, mobile phones over short distances using UHF radio waves from 2.402 GHz to 2.480 GHz. All Android devices support Bluetooth. Android developers can make use of Android Bluetooth APIs provided by the Application Framework.
Some day-to-day use cases of Android Bluetooth,
- Connect wireless earphones, headphones and earpods to take handfree calls or list to music.
- Stream music on Bluetooth Spreakers.
- Connect with Smart TVs.
- Transfer data (images, videos, music, files) between phones or desktops/laptops.
You can use Bluetooth APIs to perform the below,
- To transfer data to between devices
- To scan other Bluetooth devices around.
- To connect to other devices using service discovery.
- To query the local Bluetooth adapter for paired Bluetooth devices.
- In order to manage multiple connections.
2. Android Bluetooth API - Interfaces & Classes
Interfaces:- BluetoothProfile
android.bluetooth.BluetoothProfile
This interface is used for notifying BluetoothProfile IPC clients when they have been connected or disconnected to the service. - BluetoothAdapter.LeScanCallback
android.bluetooth.BluetoothAdapter.LeScanCallback
Callback interface used to deliver LE scan results. - BluetoothProfile.ServiceListener
android.bluetooth.BluetoothProfile.ServiceListener
This Interface is used to notifying BluetoothProfile IPC clients when they have been connected or disconnected to the service.
- BluetoothAdapter: Represents the local device Bluetooth adapter.
- BluetoothA2dp: This class provides the public APIs to control the Bluetooth A2DP profile.
- BluetoothAssignedNumbers: Bluetooth Assigned Numbers.
- BluetoothServerSocket: A listening Bluetooth socket.
- BluetoothSocket: A connected or connecting Bluetooth socket.
- BluetoothClass: Represents a Bluetooth class, which describes general characteristics of the device.
- BluetoothClass.Device: Defines all device class constants.
- BluetoothClass.Device.Major: Defines all major device class constants.
- BluetoothClass.Service: Defines all service class constants.
- BluetoothDevice: Represents a remote Bluetooth device.
- BluetoothHeadset: Public API for controlling the Bluetooth Headset Service.
- BluetoothHearingAid: This class provides the public APIs to control the Hearing Aid profile. Also check BluetoothHealthAppConfiguration
- BluetoothManager: High level manager used to obtain an instance of an BluetoothAdapter and to conduct overall Bluetooth Management.
3. Bluetooth Permissions
There are 3 user/system permissions that are related to Bluetooth that you should be aware of,
- android.permission.BLUETOOTH: This permission allows applications to connect to paired bluetooth devices.This permission was added in API 1.
- android.permission.BLUETOOTH_ADMIN: This permission allows applications to discover and pair bluetooth devices. This permission was added in API 1.
- android.permission.BLUETOOTH_PRIVILEGED: This permission allows applications to pair bluetooth devices without user interaction, it also allow or disallow phonebook access or message access. Note: This permission is not for use by third-party applications. It was added in API level 19
4. Examples: Working with Bluetooth:
How to check Bluetooth is turned on or off on device?
Tutorial LinkHow to turn Bluetooth on or off using Java code?
Tutorial Link
5. Common errors while working with Bluetooth:
RuntimeException: Unable to start activity Need BLUETOOTH permission
How to check Bluetooth is turned on or off on device?
LinkSecurityException: Need BLUETOOTH ADMIN permissicacheNameAndAddresson
How to check Bluetooth is turned on or off on device?
Link
- appcompat_v7 errors after updates to API level 21 Material Theme
- adb: The Android Debug Bridge and Commands
- The Android Virtual Device myEmulator is currently running an emulator and cannot be deleted.
- How to make TextView Text Transparent [Android]
- Android is starting optimizing... app 1 of 1
- How to make Text in TextView bold and italic in Android
- Android Development - How to switch between two Activities
- Android : IOException: Unable to open sync connection!
- Android Toolbar example with appcompat_v7 21
- How to Change Android Title Bar Color?
- How to Add Padding to Android TextView
- JavaScript : redirect page to other url
- Programmatically Send an Email from Android App using Intent
- What is Android Toast.LENGTH_SHORT and Toast. LENGTH_LONG durations
- [Soluiton] You already have the latest version of Android Studio installed
- Detect swipes on Android Activity
- Add Buttons at the bottom of Android Layout xml file
- Android Lint app_name is not translated in af (Afrikaans) am (Amharic) ar (Arabic) bg (Bulgarian)
- Hide Navigation Bar from Android Screen Activity
- Android Disable EditText from Auto Focus on Activity load
- Toast not getting displayed Android App
- How to Enable Developers Option in Android Phones Settings
- Android : Duplicate registration for activity com.example.abc
- Android ListView turns Black or Flickers while Scrolling
- Android Studio Ctrl Shift o auto import not working
- Create an S3 bucket in a specific AWS region using CLI Command - AWS
- How to Generate Self-Signed OpenSSL certificate in three easy steps - HowTos
- How to create classic site in SharePoint Online - SharePoint
- List of 28 Protocols supported by cURL with Examples - cURL
- How to Run Ollama with Large Language Models Locally Using Docker - Docker
- Rotate image from 0 to 360 degrees Tool (Free) - Tools
- Python: SyntaxError: leading zeros in decimal integer literals are not permitted; use an 0o prefix for octal integers - Python
- JSON Tutorial: List of Lessons - Json-Tutorial