如何通过Android 4.3向CC2541钥匙扣发送文本数据?
我正在开发一个应用程序,必须在Android 4.3上连接到蓝牙设备. 我想通过Android应用程序更改CC2541 KeyFob的名称. 我的想法是: 1.有一个纯文本,我可以在Android应用程序中输入我想要的名称. 2.我输入名称后,我按下按钮发送此文本. 3.如果CC2541从Android应用程序接收此文本,它将在keyfobdemo.c中的以下代码的deviceName []中更改文本: static uint8 deviceName[] = { // complete name 0x0b, // length of first data structure (11 bytes excluding length byte) 0x09, // AD Type = Complete local name 0x4b, // 'K' 0x65, // 'e' 0x79, // 'y' 0x66, // 'f' 0x6f, // 'o' 0x62
14 2024-04-01
编程技术问答社区
在Galaxy S3 Android 4.3上的BLE的连接时间间隔
当我将数据从perifpheral(CC2541)发送到Galaxys3(Android 4.3)时,我会看到,无论我在外围(7.5msec)中设置的连接间隔如何,我会以〜100msec的间隔发送数据包. 确实很差数据速率. 关于我如何加快事情的任何建议? (我已经关闭了WiFi) 谢谢 解决方案 您可能已经知道,无法配置Android BLE API的连接间隔,因此,唯一的方法是从外围设备设置它.您的外围应根据设备蓝牙硬件及其蓝牙堆栈来协商最佳连接间隔. 根据蓝牙低能规格,连接间隔确定数据包交换序列的开始之间称为连接事件,并且可以从7.5 ms到4秒.该值与功耗紧密相关,当值较小时消耗量更高. 外围应协商连接间隔,以提出最小值和最大值.如果设备拒绝该连接间隔,则您的外围设备应尝试另一个值,直到达到链接的最优值. 三星Galaxy S3的情况是需要更高连接间隔的情况之一.在我的一个测试中,我实现了在Nexus 5设备中协商约20ms的连接
8 2024-04-01
编程技术问答社区
在安卓系统中读取关贸总协定特征的正确方法是什么?
试图阅读Android API 18中蓝牙低能gatt特性的价值时,我遇到了以下困境:检索在特征中存储的值的正确方法是什么?在堆栈的哪个级别应该进行此操作? 在进行自己的研究时,我偶然发现了我了解的两种可能的方法: Bluetoothgatt . bluetoothgattharacteristic .getValue() public void onClick(View v){ byteValue = mBTValueCharacteristic.getValue(); if ((byteValue[0] & 0x01) == 1) byteValue[0] = 0x00; else byteValue[0] = 0x01; mBTValueCharacteristic.setValue(byteValue); mBTGatt.writeCharacteristic(mBTVa
4 2024-04-01
编程技术问答社区
BLE设备与安卓设备自动断开连接。安卓BLE
我正在使用Android Nexus 7通过蓝牙低能链路连接设备.我可以连接设备,如果不与设备进行任何通信,请保持连接. 但是,如果我通过单击按钮启用一个特定特征的通知,则该设备将在几秒钟的数据传输后与平板电脑断开连接. 有人知道可能是什么问题吗?非常感谢! 这是我的代码: public boolean setCharacteristicNotification(boolean enabled){ if (mBluetoothAdapter == null || mBluetoothGatt == null) { Log.w(TAG, "BluetoothAdapter not initialized"); return false; } BluetoothGattService Service = mBluetoothGatt.getService(UU
如何在Android 4.3系统中实时获取蓝牙设备的RSSI?
我正在开发一个应用程序,必须在Android 4.3上连接到蓝牙低能设备. 按下按钮时,我可以使用BluetoothLeService.readRemoteRssi(); 连接到设备后获得BLE设备的RSSI ,但我想在每一秒内获得RSSI? 我已经尝试了可运行的,但它没有在日志中调用readRemoteRssi();函数. 最终运行可运行= new runnable(){ @Override public void run() { // TODO Auto-generated method stub mBluetoothLeService.readRemoteRssi(); mHandler.postDelayed(runnable, 1000); } }; 我应该在哪里输入BluetoothLeService.readRemoteRssi(); ?? in onResume ??或如何做可以让应用程序始终获得RSSI ??
16 2024-04-01
编程技术问答社区
如何在android 4.3 BLE中使用PROXIMITY PROFILE, IMMEDIATE ALERT SERVICE和Find Me Profile?
我正在开发一个Android应用程序,必须在Android 4.3上连接到蓝牙设备. 该应用程序的目标是反损失,它可以在远程设备上发出蜂鸣器蜂鸣声,我想实现接近概况概况 和找到我配置文件 . 我参考 bluetoothlegatt 在Android API18中服务. 我发现立即警报的UUID是0x1802,但我在蓝牙开发人员门户网站上找不到找到我的配置文件和接近配置文件的UUID. ,如果我得到了UUID,则如何使用此UUID在远程设备上制作蜂鸣器. 是否有人有一个立即警报的Android应用程序样本,接近概况概况和找到我的个人资料? 或可以向我展示如何使用UUID实现所需功能? 解决方案 它们是两个不同的事情:RSSI和TX_POWER. TX_POWER是用于传输信号的幂. RSSI是接收器测量的信号的幂. 总是正确的:TX_POWER >= RSSI. (由于您无法衡量比实际传输的功率更大) 要监视两个设备之间的接
8 2024-04-01
编程技术问答社区
安卓蓝牙低能量配对
如何配对蓝牙低能(BLE)设备与读取加密数据的设备. 使用 android ble page page ,我能够发现该信息设备,连接到它,发现服务并读取未加密的特征. 当我尝试读取加密特征时(会导致iOS显示一个弹出弹出式弹出式,然后完成读取),我会得到错误代码5 ,该代码对应于不足的身份验证. 我不确定如何配对设备或如何提供身份验证信息以使读取完成. 我通过尝试添加描述符而用蓝牙旁饰物玩耍,但这也不起作用. 任何帮助都将受到赞赏! 解决方案 当您获得gatt_insuffitic_authentication错误时,系统会为您启动粘结过程.在下面的示例中,我试图在葡萄糖显示器上启用通知和指示.首先,我启用有关葡萄糖测量特征的通知,这可能会导致错误出现. @Override public void onDescriptorWrite(BluetoothGatt gatt, BluetoothGattDescriptor descriptor
14 2024-04-01
编程技术问答社区
与BLE合作的安卓4.3系统如何编写特性?
我正在使用Android 4.3 API从事一个BLE项目(Android应用程序),我使用了示例BLE应用程序,这只是DeviceControlactivity.Activity.Activity.Activity.Activity.Activity.Activity.Activity.Activity,但我想编写特征并将其发送给BLE芯片时单击一个单击一个按钮.如何在芯片CC2540上写数据.基本上,我不知道编写特征的逐步过程. 写我只能在devicecontrolactivity中使用以下代码看到设备的名称和ID private final ExpandableListView.OnChildClickListener servicesListClickListner = new ExpandableListView.OnChildClickListener() { @Override public bo
8 2024-04-01
编程技术问答社区
如何通过BLE(蓝牙低能量)将安卓设备与iOS设备连接起来
我正在尝试制作一个使用Android的新蓝牙低能API 的应用程序.为此,我从带有 API级18级的BLE样品开始. 当我读到Android无法充当外围时,我将Android手机放在中央模式下,扫描 ble设备周围.为此,我使用模拟心脏传感器的北欧平台进行了一些测试.一切都以完美的方式工作! 之后,我尝试选择 iPhone(iOS 7 beta 4),并以外围方式将其放置,并将心率传感器模拟为先前的测试. Android应用程序能够看到设备并连接到它.但是,在连接处于活动状态后,2个设备在3-4秒内彼此断开连接.除此之外,当我在Android侧调用DiscoverServices()时,没有触发回调!在某些情况下,即使关闭了iOS蓝牙芯片,Android设备也会收到"连接"事件.这很奇怪.为了证明这一点,我将北欧板放在中央模式下,并且我能够正确连接到iOS设备,没有问题. 可能是什么?对Android或iOS有一些限制,这些局限性不允许从Android连接到iOS或Vi
10 2024-04-01
编程技术问答社区
原生的安卓BLE实现在本质上是同步的吗?
我记得在 三星f/w和stack的最重要概念之一是 它的同步性质.也就是说,如果我们打电话 writeCharacteristic对于特定特征,如果返回 true,下一个呼叫任何BluetoothGatt或BluetoothGattServer方法 应在收到onCharacteristicRead回调后完成. 这是因为堆栈旨在仅支持和处理一个 Gatt一次致电,例如,如果您打电话 writeCharacteristic或readCharacteristic在任何特征上很快 在第一个之后,它被忽略. 这也适用于引入BLE的本机实施 在Android 4.3? 中 Samsung API一次仅支持一个连接的GATT设备. 这在本机API中是否发生了变化? 解决方案 三星最近在我的问题中链接的同一页面上发布了一个"迁移".他们在将新的本地BLE API与三星BLE API进行比较时完全回答了我的问题: 堆栈和f/w的同步性质尚未受到影响. 也就是说,例如,如果我们打电话
6 2024-04-01
编程技术问答社区
用蓝牙LE在iOS和Android之间进行通信
我有一个使用CoreBluetooth的工作应用程序在iPad(Central)和iPhone(外围)之间进行通信.我有一个具有两个特征的服务.我有一个Nexus 7,并带有最新的Android 4.3,并带有BTLE支持. Android跳到Btle Bandwagon有点晚了,但看来他们正在与iOS的处理方式相似,最初他们只支持在以后版本中充当外围模式的中心.我可以加载样品Android Btle应用程序,然后浏览附近的外围设备.以我的iPhone广告作为外围广告,我可以在Android方面的附近外围设备列表中看到CbadvertisementDataLocalNamekey的价值.我可以连接到iPhone,当连接建立连接时,蓝牙符号从浅灰色变为黑色.连接始终持续10秒,然后断开连接.在Android方面,我应该看到可用服务的列表,并在连接后立即出现特征.我证明了Android代码的设置正确,因为我可以将其插入我拥有的TI CC2541DK传感器硬件,并且在连接到它时列出了所有服务和
连接到BLE设备后,如何获得电池电量?
我正在开发一个应用程序,必须在Android 4.3上连接到蓝牙设备. 我想使用 Battery_service 和 Battery_level . public class BluetoothLeService extends Service { private static final UUID Battery_Service_UUID = UUID.fromString("0000180F-0000-1000-8000-00805f9b34fb"); private static final UUID Battery_Level_UUID = UUID.fromString("00002a19-0000-1000-8000-00805f9b34fb"); public void getbattery() { BluetoothGattService batt
18 2024-04-01
编程技术问答社区
安卓BLE API。未收到GATT通知
用于测试的设备:Nexus 4,Android 4.3 连接工作正常,但是我的回调的onCharacteristicChanged方法从未调用.但是,我正在使用onServicesDiscovered内部使用setCharacteristicNotification(char, true)的通知注册,该功能甚至返回true. 设备日志(实际上有 no 消息,当通知时应通过蓝牙设备发送 exp/em>): 07-28 18:15:06.936 16777-16809/de.ffuf.leica.sketch D/BluetoothGatt: setCharacteristicNotification() - uuid: 3ab10101-f831-4395-b29d-570977d5bf94 enable: true 07-28 18:15:06.936 4372-7645/com.android.bluetooth D/BtGatt.GattService: r
12 2024-04-01
编程技术问答社区
使用128位UUIDs的startLeScan在安卓原生BLE实现中不工作
I am having trouble using sproslescan(new Uuid [] {m​​y_desired_128_bit_bit_service_uuid},callback)在我的nexus 4上的新引入的ble api上 回调只是没有被调用.我仍然可以在日志中看到传入的软件包: 08-02 15:48:57.985: I/bt-hci(1051): btu_ble_process_adv_pkt 08-02 15:48:58.636: I/bt-hci(1051): BLE HCI(id=62) event = 0x02) 如果我不使用参数来过滤uuid,则可以使用.我们正在使用制造商特定的128位UUID 用于我们公司的设备. 现在,我们的设备提供的服务比我在数组中提供的服务更多.但这不是问题. 有人面临同样的问题吗?有什么解决方案? 编辑 有几个与扫描有关的问题,这个问题只会讨论一个:,如果您也有一些扫描问题,请阅读首先首
12 2024-04-01
编程技术问答社区
安卓4.3蓝牙低能耗不稳定
我目前正在开发一个将使用蓝牙低能的应用程序(Nexus 4上的测试).在Android 4.3中开始使用官方BLE API后,我注意到第一次连接设备后,我很少能成功连接到/与该设备或任何其他设备进行连接/通信. 遵循指南之后和特征,并读/写/接收通知,没有任何问题.但是,在断开和重新连接后,我通常无法扫描服务/特征或无法完成读取/写入.我在日志中找不到任何东西来指示为什么会发生这种情况. 发生这种情况后,我必须卸载应用程序,禁用蓝牙并重新启动手机,然后再开始工作. 每当断开设备时,我都确保在蓝牙gatt对象上调用CLOSE()并将其设置为null.有任何见解吗? 编辑: 日志转储:对于这些日志,我将手机扎根,并在/etc/bluetooth/bt_stack.conf 中提高了相关项目的跟踪级别 成功的连接 - 重新启动手机并安装应用程序后首次尝试.我能够连接,发现所有服务/特征并读/写. 失败尝试1 - 这是与上面成功连接断开连接后的下一次尝试.看来
IOException: 读取失败,套接字可能关闭--Android 4.3上的蓝牙
目前,当我的Nexus 7(2012)上打开蓝牙股时,我正在尝试处理一个奇怪的例外,并使用Android 4.3(构建JWR66Y,我想第二个4.3更新).我已经看到了一些相关的帖子(例如我正在处理嵌入式设备(非Amam obd-ii汽车适配器,类似于 http://images04.olx.com/ui/15/53/53/76/76/76/131654072_2542_2542542542542547777777777777776_2 -OBD-II-BLUTOOTH-ADAPTERSCLEAR-CLEAR-CHECK-ENGINE-LIGHTS-with-your-phone-oceanside.jpg ).我的Android 2.3.7手机没有任何连接的问题,同事的Xperia(Android 4.1.2)也可以使用.另一个Google Nexus(我不知道"一个"或" S",但不是" 4")也因Android 4.3而失败. 这是连接机构的片段.它以其自己的线程运行,在服务
20 2024-04-01
编程技术问答社区
针对安卓4.3时,奇怪的XML布局错误
当构建API级别18时,我在构建我的应用程序时会遇到一个非常奇特的错误.API级别17不会发生.我正在Android 4.3设备上运行该应用程序,并且该错误是错误的.持续在所有三个设备上. 这就是它的样子: API 17(正确): API 18(不正确): 我正在使用@Override public View getHeaderView(int position, View convertView, ViewGroup parent) { RowItem holder; if (convertView == null) { convertView = inflater.inflate(R.layout.seasons_row_header, parent, false); holder = new RowItem(); holder.title = (TextView) convertView.findViewById(R.id.seasonTitle); hol
14 2024-02-20
编程技术问答社区
AOSP构建错误:符号未定义
我正在尝试构建基于AOSP 4.3_R2.2.在这样的建筑物中,我遇到了很多错误: frameworks/base/core/res/res/values/public.xml:244: error: Symbol 'config_bluetooth_adapter_quick_switch' declared with not defined frameworks/base/core/res/res/values/public.xml:1558: error: Symbol 'config_enableDreams' declared with not defined frameworks/base/core/res/res/values/public.xml:919: error: Symbol 'ic_suggestions_add' declared with not defined fra
28 2024-02-18
编程技术问答社区
我能否检测到我的安卓应用的某个特定权限已被删除?
因此,随着Android 4.3的到来,可以选择性地这显然可能导致应用程序失去正确操作所需的许可的问题. 撤销许可后,系统是否会广播消息,还是我怎么能说我的应用不再有某个许可?理想情况下,我想通知用户关闭许可证将在应用程序中打破xyz. 解决方案 没有广播,但是您可以在启动(或简历等)上自己检查权限.在提供为了这. 如果您想检查所有权限,则可以执行类似的操作: public static boolean[] getPermissionsGranted(Context context, String[] permissions){ boolean[] permissionsGranted = new boolean[permissions.length]; for(int i=0;i
8 2024-02-17
编程技术问答社区