直到Android 4.3,支持低功耗蓝牙的Android设备只能充当中央设备。正如Android 4.3 Bluetooth LE文档中所给出的:
随着Android 4.4 KitKat的引入,它现在还能充当外围设备吗?我找不到任何文档。如果不是,那么我们是否需要等待Android 4.5才能在Android设备上获取BTLE外设模式?还是有其他替代方法可以使Android设备充当外围设备?
最佳答案
没有此版本,但有证据表明它即将推出。
如果您在android-19来源中查看BluetoothGatt.java,则有新方法listen
和setAdvData
在android-18中不存在。
但是,这些文件没有记录在案,因为我认为 native 支持尚不完整。上一次在AOSP上进行外围设备模式检查的标题为“LE:添加外围设备角色支持(2/4)”。另外,setAdvData
和listen
具有以下代码:
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/res/values/config.xml,您可以看到当前已被禁用:
<!-- Boolean indicating if current platform supports BLE peripheral mode -->
<bool name="config_bluetooth_le_peripheral_mode_supported">false</bool>