In the modern smart phone field, the Bluetooth function has become very common, so how to develop Bluetooth in the Android Application Development Process, today we will introduce the use of Android Bluetooth Stack bluez.
Many developers did not find any reference for the Bluetooth stack in the latest Android 0.9 SDK. However, we have seen in official news that the Package is org. bluez. Here we will mainly introduce the Android blue tooth SDP Related Routines. We can see that it is. intent. action, which is divided into four stages:
[Java]
Org. bluez. intent. action. DISCOVERY_STARTED // start the probe
Org. bluez. intent. action. REMOTE_DEVICE_FOUND // remote device found
Org. bluez. intent. action. REMOTE_NAME_UPDATED // obtain the remote device name.
Org. bluez. intent. action. DISCOVERY_COMPLETED // complete SDP
Org. bluez. intent. action. DISCOVERY_STARTED // start the probe
Org. bluez. intent. action. REMOTE_DEVICE_FOUND // remote device found
Org. bluez. intent. action. REMOTE_NAME_UPDATED // obtain the remote device name.
Org. bluez. intent. action. DISCOVERY_COMPLETED // complete SDP
The general usage method is as follows. You can test it on the Development Board. First, port the org. bluez library.
[Java]
Public void onStart (int startId, Bundle args)
{
Super. onStart (startId, args );
Try {
Iblustmthservice ibtservice = descrithservicenative. getjavasthservice (); // obtain an instance. In fact, the system service has been prepared in Android.
If (ibtservice = null ){
StopSelf (); // if it fails, Exit
Return;
}
Manager = ibtservice. getManager ();
If (manager = null ){
StopSelf ();
}
If (! Ibtservice. isw.thstarted ()){
Ibtservice. startBluetooth (); // start the service
}
Miadapter = manager. getdefaadapter adapter ();
Miadapter. startDiscovery (); // you have prepared for the probe.
String [] dispositivos = miadapter. listRemoteDevices (); // remote device mac list
If (dispositivos. length = 0 ){
Toast. makeText (this, R. string. no_found_devices, Toast. LENGTH_SHORT). show (); // No bluetooth device found
} Else {
For (int I = 0; I <dispositivos. length; I ++ ){
// If you have already found a bluetooth device, prepare for pairing and then perform the matching on your own. Of course, you can determine whether the device type is handset, ftp, or another device type based on Mac, of course, standard GPS uses serial ports for communication.
}
}
} Catch (Exception e ){
System. out. println (e. getMessage ());
}
}
Public void onStart (int startId, Bundle args)
{
Super. onStart (startId, args );
Try {
Iblustmthservice ibtservice = descrithservicenative. getjavasthservice (); // obtain an instance. In fact, the system service has been prepared in Android.
If (ibtservice = null ){
StopSelf (); // if it fails, Exit
Return;
}
Manager = ibtservice. getManager ();
If (manager = null ){
StopSelf ();
}
If (! Ibtservice. isw.thstarted ()){
Ibtservice. startBluetooth (); // start the service
}
Miadapter = manager. getdefaadapter adapter ();
Miadapter. startDiscovery (); // you have prepared for the probe.
String [] dispositivos = miadapter. listRemoteDevices (); // remote device mac list
If (dispositivos. length = 0 ){
Toast. makeText (this, R. string. no_found_devices, Toast. LENGTH_SHORT). show (); // No bluetooth device found
} Else {
For (int I = 0; I <dispositivos. length; I ++ ){
// If you have already found a bluetooth device, prepare for pairing and then perform the matching on your own. Of course, you can determine whether the device type is handset, ftp, or another device type based on Mac, of course, standard GPS uses serial ports for communication.
}
}
} Catch (Exception e ){
System. out. println (e. getMessage ());
}
}
After opening the communication, you can import the following classes.
[Java]
Import org. bluez. Manager;
Import org. bluez. Adapter;
Import org. bluez. ibluw.thservice;
Import org. bluez. descrithservicenative;
Import org. bluez. Manager;
Import org. bluez. Adapter;
Import org. bluez. ibluw.thservice;
Import org. bluez. descrithservicenative;
In addition, we suspect that the final Android platform supports the Bluetooth feature. As a smart platform that does not support Bluetooth, it is so ridiculous. The following is a message from the official side, android 1.0 supports Bluetooth. The final version will include Bluetooth API support. For example, Android supports Bluetooth headsets. Although Bluetooth-related information is not found in earlier versions of the SDK, many features will be included.
We can pass the iblustmthdevicecallback object in multiple asynchronous callbacks, but as an internal interface, we can only see the emergence of the aidl language through iblustmthdevicecallback. AIDL. Android Bluetooth Stack bluez 4.x supports GAP and SDP. The following features are supported:
Bind the GAP and SDP functions, support RFCOMM and SCO sockets, may support L2CAP socket, this function is under consideration, you can use headphones or hands-free mode.