Articles of bluetooth lowenergy

使用BLE Android 4.3如何编写特性?

我正在使用Android 4.3 API开发BLE项目(Android应用程序),我使用了样本BLE应用程序,它只是在DeviceControlActivity.activity中读取特性,但我想编写特性并在点击按钮时将其发送到BLE芯片。 如何在芯片cc2540上写入数据..基本上我不知道逐步编写特性的程序。 写我只能在DeviceControlActivity中看到以下代码段的设备名称和ID private final ExpandableListView.OnChildClickListener servicesListClickListner = new ExpandableListView.OnChildClickListener() { @Override public boolean onChildClick(ExpandableListView parent, View v, int groupPosition, int childPosition, long id) { if (mGattCharacteristics != null) { final BluetoothGattCharacteristic characteristic = mGattCharacteristics.get(groupPosition).get(childPosition); final int charaProp = characteristic.getProperties(); if ((charaProp | BluetoothGattCharacteristic.PROPERTY_READ) > 0) { // If there is an active […]

三星Galaxy S3上的蓝牙4.0 /智能/低能耗

我正在尝试为S3开发蓝牙4.0应用程序。 问题是,手机的行为就像它甚至没有蓝牙4.0。 它不会发现4.0设备,并且使用4.0设备无法发现。 我使用Broadcom-ble API在手机设置和应用程序中尝试了这两种方法。 Broadcom API没有任何额外的function来查找/发现4.0设备,而是使用常规的BluetoothAdapterfunction,并声称它将在4.0手机中进行扩充,以发现4.0设备。 有人试过在S3上使用蓝牙4.0吗? 有没有人成功使用Broadcom API? 提前致谢。

使用Android 4.4.2在Nexus 7(ME370T)上进行BLE

我一直在尝试使用sdk(sdk \ samples \ android-18 \ legacy \ BluetoothLeGatt)中的样本将BLE设备与我的Nexus 7(ME370T)配对。 但我得到的信息“不支持Ble”。 我正在寻找解决方案,我只发现: NB! 带有Android 4.3的Nexus 7(2012)未启用BLE。 要在此设备上使用BLE,您将需要Bluetooth Low Energy Enabler工具。 此工作的先决条件是设备已植根,并且>已安装BusyBox应用程序。 我找不到有关4.4.2支持或4.4.2任何启用的任何信息。 我才能find 以防其他人在Nexus 7上搜索BLE – 这个ROM在4.4 KitKat上有一个工作BLE。 几乎> Stock ROM称为’纯度’。 PURITY ROM(链接: http : //forum.xda-developers.com/showthread.php? t = 2222374)。 问题是我需要将带有4.4.2的Nexus 7托管到另一个ROM以启用BLE吗? mod后它会起作用吗?

适用于Android,iOS和Win8的蓝牙低功耗连接参数

我一直在寻找所有这三个操作平台所需的蓝牙连接参数。 我正在使用此项目的HOGP(Bluetooth over HID GATT)配置文件。 我的项目是一个由我自己编写的嵌入式系统,带有一个BLE模块,我可以控制以下连接参数。 连接间隔最小值 连接间隔最大值 奴隶潜伏期 监督超时 广告时间间隔 广告间隔最大 我要连接的目标设备将满足Android> = 4.3,iOS7和> = Win 8.1的连接。 Apple非常友好地在下面的链接中提供了第22页上带有相应参数的文档。 我无法find有关Android和Win 8的任何信息。 https://developer.apple.com/hardwaredrivers/bluetoothdesignguidelines.pdf 我目前的iOS7工作设置完全测试与免费软件lightBlue的双向通信如下。 我的iOS7嵌入式代码和主机软件可以运行。 连接间隔最小30ms 连接间隔最大56.25ms 奴隶潜伏期3 监督超时5000ms 我从另一个堆栈溢出页面发现,据称android可以通过以下链接在7.5ms连接间隔上工作。 Android BLE连接时间间隔 http://processors.wiki.ti.com/index.php/Bluetooth_SensorTag?DCMP=lprf-stdroid&HQS=lprf-stdroid-pr-wiki1#Supported_Android_devices 不幸的是苹果iOS规范的第二个要求是“IntervalMin≥20ms”。 我不理解这些范围或如何解释它们? 如果我将Interval min设置为7.5ms for Android,那会不会影响苹果的要求? 如果可能,我如何满足两个系统和Win8? 我的理解是从设备在最小值和最大值之间提供建议设置,并且主设备(智能手机)警告用户该范围内的实际选定值。 我对这个问题的任何帮助表示感谢,并希望这篇文章能够让其他人考虑到BLE相当新的和不完整的知识基础。 提前致谢!

使用Android 6.0的BluetoothLeScanner.startScan无法发现设备

我正在尝试使用BluatoothLeScanner.startScan函数而不是弃用的BluetoothAdapter.startLeScan 。 昨天我将我的Nexus 5更新为Android 6.0,从那时起我的应用程序就不再起作用了。 我首先添加了此处所需的ACCESS_COARSE_LOCATION首选项, https://developer.android.com/about/versions/marshmallow/android-6.0-changes.html#behavior-hardware-id 。 然后我添加了如下所述的权限: https : //developer.android.com/training/permissions/requesting.html 。 但最后它似乎无法正常工作,它不会发送回设备。 这是我的代码: 表现 ` DeviceScanActivity @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); … if (ContextCompat.checkSelfPermission(this,Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED){ if (ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.ACCESS_COARSE_LOCATION)) { } else { ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.ACCESS_COARSE_LOCATION}, MY_PERMISSIONS_REQUEST_ACCESS_COARSE); } } // Device scan callback. if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { if (ContextCompat.checkSelfPermission(this,Manifest.permission.ACCESS_COARSE_LOCATION) == […]

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

直到Android 4.3,支持蓝牙低功耗的Android设备才能充当中央设备。 正如在Android 4.3蓝牙LE文档中给出的那样: Android 4.3(API Level 18)在中心角色中引入了对Bluetooth Low Energy的内置平台支持,并提供了应用程序可用于发现设备,查询服务和读/写特征的API。 随着Android 4.4 KitKat的推出,它现在也可以作为外围设备使用吗? 我找不到任何文件。 如果没有,那么我们是否必须等待Android 4.5才能在Android设备上获得BTLE外设模式? 或者有没有其他方法可以使Android设备充当外围设备?

在Android上同时与多个BLE设备进行稳健通信

虽然使用Android BLE apis的无证,传统智慧是某些操作,如读/写特征和描述符应该一次一个(尽管有些设备比其他设备更宽松)。 但是,我不清楚此策略是仅应用于单个连接还是应用于所有活动连接。 我听说最好一次启动一个设备连接。 这可能是应该在所有设备之间串行执行的操作(connect / connectGatt)的示例。 但对于其他操作,如读写特性,如果每个连接串行执行操作,或者我是否需要在所有设备之间共享一些全局操作队列,以便在所有设备之间只执行一个操作,它是否足够好?

本机Android BLE实现本质上是同步的吗?

我记得在“指南和提示”中读到了-Doc到三星BLE API(存档页面) : 三星F / W和堆栈最重要的概念之一是它的同步特性 。 也就是说,如果我们为特定特征调用writeCharacteristic ,如果它返回true ,则在接收到onCharacteristicRead回调之后,应该对任何BluetoothGatt或BluetoothGattServer方法进行下一次调用。 这是因为堆栈被设计为一次只支持和处理一个GATT调用,例如,如果在第一个调用后很快就调用writeCharacteristic或readCharacteristic ,它将被忽略。 这是否也适用于Android 4.3中引入的BLE的nativ实现? Samsung API一次只支持一个连接的GATT设备。 这在原生API中发生了变化吗?

Android模拟器上的蓝牙低功耗

我研究了蓝牙低功耗 。 但我没有支持BLE设备进行测试。 因此,我想问: Android模拟器是否支持BLEfunction进行测试? 我在Android Emulator 4.3(x86)和Android Emulator 4.4(ARM)上尝试使用以下代码: // Use this check to determine whether BLE is supported on the device. Then // you can selectively disable BLE-related features. if (!getPackageManager().hasSystemFeature(PackageManager.FEATURE_BLUETOOTH_LE)) { Toast.makeText(this, R.string.ble_not_supported, Toast.LENGTH_SHORT).show(); finish(); } 它总是显示“ble_not_supported” 。 另一个问题是 另一个模拟器或工具支持Android的BLE? 我真的想在模拟器上测试BLEfunction。

从G-Shock手表蓝牙android获取UUID

我正在研究Android中的蓝牙低功耗。 我希望在设备配对时获取远程设备的UUIDs 。 我发现BluetoothDevice.getUuids()将提供远程设备的UUIDs 。 我在ICS的设置应用程序中使用过它。 我能够获得经典设备和加密狗的UUIDs ,这是一种低能耗设备。 但是我无法获得低能耗的卡西欧手表的UUIDs 。 你能帮我解决这个问题吗?