Does Android KitKat allows devices that support Bluetooth LE to act as a peripheral device?

Till Android 4.3, an Android device with Bluetooth Low Energy support could only act as a central device. As is given in the Android 4.3 Bluetooth LE docs:

Android 4.3 (API Level 18) introduces built-in platform support for Bluetooth Low Energy in the central role and provides APIs that apps can use to discover devices, query for services, and read/write characteristics.

  • Android authentication with Google OpenID. What next?
  • Android: rotate image without loading it to memory
  • Login failed invalid key error with Facebook SDK
  • Fragment with ViewPager inside Fragment and FragmentStatePagerAdapter results in Exception (with complete example)
  • getChildFragmentManager() and support libraries
  • Using the “animated circle” in an ImageView while loading stuff
  • With the introduction of Android 4.4 KitKat, can it also behave as a peripheral device now? I couldn’t find any documentation of that. If not, then do we have to wait for Android 4.5 for getting the BTLE peripheral mode on Android device? Or is there any alternative way in which an Android device can be made to act as a peripheral device?

    Related posts:

    How to make an Android launcher icon
    Loading Drawable Image Resource in Fresco's SimpleDraweeView
    How to select which button to click on Robotium for an alert dialog?
    ERROR :rendering problems The following classes could not be found
    Convert a Pdf page into Bitmap in Android Java
    Multi-layered ExpandableListView
  • When will Android have a public Calendar API?
  • Relatively positioned elements in scrollable absolutely positioned div “lag behind” on scroll
  • In-App-Billing Issues in android
  • How to handle stickers with resize and rotate functionality?
  • Are there any built-in/default sounds that can be utilized in an App?
  • Creating JSONObject from string in JAVA (org.json)
  • 3 Solutions collect form web for “Does Android KitKat allows devices that support Bluetooth LE to act as a peripheral device?”

    By looking at the full api difference, the answer in short : NO


    To add peripheral role support now you have to get your hands dirty to customize the Bluedroid stack in the OS level, or try your luck on XDA developers to see if anyone has done this before. I am not sure the current Android phone support peripheral role at hardware level,though .

    Not in this version but there is evidence that it is coming soon.
    If you look in in the android-19 sources there are new methods listen and setAdvData that weren’t there in android-18.
    However these are not documented as I don’t think native support is complete yet. The last check in on AOSP for peripheral mode was titled “LE: Add peripheral role support (2/4)”. Also, setAdvData and listen have this code:

    if (mContext == null || !mContext.getResources().getBoolean(
        throw new UnsupportedOperationException("BluetoothGatt#listen is blocked");

    Looking in android/platform_frameworks_base/blob/master/core/res/res/values/config.xml from the Android sources you can see this is currently disabled:

    <!-- Boolean indicating if current platform supports BLE peripheral mode -->
    <bool name="config_bluetooth_le_peripheral_mode_supported">false</bool>

    Thanks everyone for the answers. Just to update, as of June 2014, it is offered in the Android L Developer preview. Hope to see it in the Android L official release. From their blog New in Android: L Developer Preview and Google Play Services 5.0:

    The L Developer Preview, lets you explore many of the new features and capabilities of the next version of Android, and offers everything you need to get started developing and testing on the new platform. Here are a few of the highlights for developers:

    BLE Peripheral Mode — Android devices can now function in Bluetooth Low Energy (BLE) peripheral mode. Apps can use this capability to broadcast their presence to nearby devices — for example, you can now build apps that let a device to function as a pedometer or health monitor and transmit data to another BLE device.


    The bad news is that BLE Peripheral mode will only work on the newer Android devices (as per the date), viz Nexus 6 and Nexus 9. It won’t work on Nexus 4/ Nexus 5/nexus 7/ nexus 10 even if you update it to Android 5.0. You can read the comment by one of the Android Project manager on BLE advertise mode not working ticket. He says:

    We introduced BLE peripheral mode in Android 5.0 Lollipop. Nexus 6 and Nexus 9 are the first two production Nexus devices that support BLE peripheral mode. Due to hardware chipset dependency, older Nexus devices (4/5/7) will not have access to the feature on Lollipop.

    Android Babe is a Google Android Fan, All about Android Phones, Android Wear, Android Dev and Android Games Apps and so on.