Android KitKat是否允许支持蓝牙LE的设备充当外围设备?

时间:2013-10-31 22:46:46

标签: android bluetooth-lowenergy android-4.4-kitkat

直到Android 4.3,支持蓝牙低功耗的Android设备才能充当中央设备。正如Android 4.3 Bluetooth LE文档中所述:

  

Android 4.3(API Level 18)在核心角色中引入了对Bluetooth Low Energy的内置平台支持,并提供了应用可用于发现设备,查询服务和读/写的API特点。

随着Android 4.4 KitKat的推出,它现在也可以作为外围设备使用吗?我找不到任何相关文件。如果没有,那么我们是否必须等待Android 4.5才能在Android设备上获得BTLE外设模式?或者有没有其他方法可以让Android设备充当外围设备?

3 个答案:

答案 0 :(得分:17)

不是这个版本,但有证据表明它即将推出 如果你在android-19源代码中查看BluetoothGatt.java,那么android-18中没有新的方法listensetAdvData
但是这些没有记录,因为我认为原生支持还没有完成。最后一次在AOSP上检查外设模式的标题是“LE:添加外设角色支持(2/4)”。此外,setAdvDatalisten也有此代码:

if (mContext == null || !mContext.getResources().getBoolean(com.android.internal.R.bool.config_bluetooth_le_peripheral_mode_supported))
{
    throw new UnsupportedOperationException("BluetoothGatt#listen is blocked");
}

在Android源中查看android / platform_frameworks_base / blob / master / core / res / res / values / config.xml,您可以看到目前已禁用此功能:

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

答案 1 :(得分:11)

感谢大家的回答。只是为了更新,截至2014年6月,它在Android L Developer预览版中提供。希望在Android L官方发布中看到它。来自他们的博客New in Android: L Developer Preview and Google Play Services 5.0

  

L Developer Preview让您可以探索下一版Android的许多新功能,并提供开始在新平台上开发和测试所需的一切。以下是开发人员的一些亮点:

     

BLE外设模式 - Android设备现在可以在蓝牙低功耗(BLE)外设模式下运行。应用程序可以使用此功能将其状态广播到附近的设备 - 例如,您现在可以构建应用程序,让设备充当计步器或健康监视器,并将数据传输到另一个BLE设备。

<强>更新

坏消息是BLE外围设备模式仅适用于较新的Android设备(按照日期),即Nexus 6和Nexus 9.它无法在Nexus 4 / Nexus 5 / nexus 7 /上工作nexus 10即使您将其更新到Android 5.0。您可以通过comment票证上的某个Android项目经理阅读BLE advertise mode not working。他说:

  

我们在Android 5.0 Lollipop中引入了BLE外设模式。 Nexus 6和Nexus 9是首批支持BLE外设模式的两款Nexus设备。由于硬件芯片组的依赖性,较旧的Nexus设备(4/5/7)将无法访问Lollipop上的功能。

答案 2 :(得分:7)

http://developer.android.com/sdk/api_diff/19/changes.html

通过查看完整的api差异,简而言之答案:否

==============

现在要添加外围角色支持,您必须亲自动手以在操作系统级别自定义Bluedroid堆栈,或者试试XDA开发人员的运气,看看是否有人之前已经这样做了。不过,我不确定目前的Android手机是否支持硬件级别的外设角色。