- 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?
- 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 & ClassesInterfaces:
This interface is used for notifying BluetoothProfile IPC clients when they have been connected or disconnected to the service.
Callback interface used to deliver LE scan results.
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 Link
How 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?Link
SecurityException: Need BLUETOOTH ADMIN permissicacheNameAndAddresson
How to check Bluetooth is turned on or off on device?Link
- Android : Execute some code after back button is pressed
- Android is starting optimizing... app 1 of 1
- How to change Android Button Color using xml attribute and programatically using java
- SQLite with Android Easy to Understand Tutorial that covers Select, Insert, Update and Delete
- How to make Android EditText not editable
- Make Android TextView Clickable like Buttons
- Unable to establish connection to adb : Android Studio Error
- Android Constant and Resource Type Mismatches Lint
- Android Shared Preferences API tutorial
- Fixing Android unknown error 961 while downloading app
- DDMS files not found hprof-conv.exe
- How to reset eclipse layout
- Android Developers Bluetooth Tutorial
- Android Studio Native typeface cannot be made error
- 21 Useful Android Emulator Short-cut Keyboard Keys
- Multiline EditText in Android Example
- How to screenshot on Android?
- Unable to load VM from snapshot. The snapshot has been saved for a different hardware configuration
- How To Disable Landscape Mode in Android Application
- Change Title text for Android Activity using java code
- Android : Class file collision: A resource exists with a different case
- Android Emulator Soft Back button action using Computer keyboard
- Device not compatible error Android Google Play Store
- ERROR x86 emulation currently requires hardware acceleration. Intel HAXM is not installed on this machine
- java.lang.NoClassDefFoundError android.support.v4.content.LocalBroadcastManager
- Disable Fading Edges Scroll Effect Android Views
- Android : Unable to load VM from snapshot : Mac OS X Error
- Change Android EditText Cursor Height
- What is Android Toast.LENGTH_SHORT and Toast. LENGTH_LONG durations
- How to add border to Android TextView
- Remove ActionBar from Activity that extends appcompat-v7
- How to send SMS on Android Emulator
- Android RatingBar Example
- This Toast was not created with Toast.makeText() : Android RuntimeException
- Android Studio Ctrl Shift o auto import not working
- Android : Duplicate registration for activity com.example.abc
- ADT Installation Error: requires plug-in org.eclipse.wst.sse.ui
- Running Android Lint has encountered a problem NullPointerException Error
- Android Emulator] ##KBD: Full queue, lose event Error Logs
- Export aborted because fatal lint error were found
- Android Parsing Data for android-L failed Unsupported major.minor version 51.0 Error
- Android : Accidental Octal Lint Warning
- Android ListView turns Black or Flickers while Scrolling
- How to make a dummy phone call from Android Emulator device
- Android Emulator] ##KBD: Full queue, lose event Error Logs - Android
- PHP drag and drop file upload tutorial using dropzone.js - PHP
- Column Mode Editing in Notepad++ - NotepadPlusPlus
- Gmail Unable to upload because it is a folder or a package (like an application bundle or RTFD document) - HowTos
- Android Shared Preferences API tutorial - Android
- Notepad++ Dark Theme - NotepadPlusPlus
- Change Mouse Scrolling in Mac OS X - Mac-OS-X
- Android Studio java.net.NoRouteToHostException - Android-Studio
- Error : Invalid key hash.The key hash does not match any stored key hashes - Android
- JSON Schema and Hyper-Schema : JSON Tutorial - Json-Tutorial
- 'Edit Document' Requires a Windows Sharepoint Services-compatible application and Microsoft Internet Explorer 6.0 or higher - SharePoint
- Remove Trailing zeros BigDecimal Java - Java
- Android Studio : Connection Error : Failed to download patch file - Android-Studio
- Find Java JRE Installation location Mac OS X - Mac-OS-X
- Go to Line Number option in Windows Notepad - NotepadPlusPlus