Hi Guys !!! Hope all is well
Today I am going to discus Bluetooth Low Energy (BLE) in Android.
In this tutorial, We will learn about the BluetoothLeAdvertiser class,
which enables developers to turn a supported phone into a Bluetooth LE beacon
without the need for additional hardware.

Today I am going to discus Bluetooth Low Energy (BLE) in Android.
- Bluetooth Low Energy (BLE), available in Android 4.3 and later
- Creates short connections between devices to transfer bursts of data
- Bluetooth Low Energy (BLE) conserves power by remaining in sleep mode most of the time
- It wakes up only to make advertisements and short connections
In this tutorial, We will learn about the BluetoothLeAdvertiser class,
which enables developers to turn a supported phone into a Bluetooth LE beacon
without the need for additional hardware.

You can download complete project from my GitHub page
private void advertise() { mBluetoothAdvertiser = BluetoothAdapter.getDefaultAdapter().getBluetoothLeAdvertiser(); AdvertiseSettings settings = new AdvertiseSettings.Builder() .setAdvertiseMode(mode) .setTxPowerLevel(power) .setTimeout(3*60*1000) .setConnectable(true) .build(); ParcelUuid pUuid = new ParcelUuid( UUID.fromString( getString( R.string.ble_uuid ) ) ); AdvertiseData data = new AdvertiseData.Builder() .setIncludeDeviceName( true ) //.addServiceUuid( pUuid )
.addServiceData( pUuid, "SK".getBytes(Charset.forName("UTF-8") ) ) .build(); advertisingCallback = new AdvertiseCallback() { @Override
public void onStartSuccess(AdvertiseSettings settingsInEffect) { Log.e( "Saurabh_BLE", "Advertising onStartSuccess: getTxPowerLevel "
+ settingsInEffect.getTxPowerLevel() );
String modes = "";
if(2 == settingsInEffect.getMode()){
modes = "LOW LATENCY Mode";
}else if(1 == settingsInEffect.getMode()) {
modes = "BALANCED Mode";
}else if(0 == settingsInEffect.getMode()) {
modes = "LOW POWER Mode";
}
String power = "";
if(3 == settingsInEffect.getTxPowerLevel()){
power = "TX_POWER_HIGH";
}else if(2 == settingsInEffect.getTxPowerLevel()) {
power = "TX_POWER_MEDIUM";
}else if(1 == settingsInEffect.getTxPowerLevel()) {
power = "TX_POWER_LOW ";
} else if(0 == settingsInEffect.getTxPowerLevel()) {
power = "TX_POWER_ULTRA_LOW";
}
mText.setText("Advertising Start: Success \n"+
"Advertising PowerLevel: "+power+"\n"+
"Advertising Mode: "+modes+" \n"+
"Advertising Timeout(ms): "+settingsInEffect.getTimeout()+"\n"+
"Advertising Connectable: "+settingsInEffect.isConnectable());
super.onStartSuccess(settingsInEffect);
}
@Override
public void onStartFailure(int errorCode) { Log.e( "Saurabh_BLE", "Advertising onStartFailure: " + errorCode ); mText.setText("Advertising Start Failure ErrorCode: "+errorCode); super.onStartFailure(errorCode); } }; mBluetoothAdvertiser.startAdvertising( settings, data, advertisingCallback ); }
Thanks
Saurabh
Happy Coding !!!


No comments:
Post a Comment