当前位置:首页 > 技术心得 > 正文内容

Android BLE:onServicesDiscovered(BluetoothGatt gatt, int status) 没有回调过

xjtudll9年前 (2017-03-30)技术心得18250


问题:

.discoverServices()调用之后,却永远不回调onServicesDiscovered(BluetoothGatt gatt, int status)

基本代码如下:

public void onConnectionStateChange(BluetoothGatt gatt, int status, int newState) {

            String intentAction;

            if (newState == BluetoothProfile.STATE_CONNECTED) {

                intentAction = ACTION_GATT_CONNECTED;

                mConnectionState = STATE_CONNECTED;

                broadcastUpdate(intentAction);

                Log.i(TAG, "Connected to GATT server.");

                // Attempts to discover services after successful connection.

                Log.i(TAG, "Attempting to start service discovery:" +

                        mBluetoothGatt.discoverServices());

            } else if (newState == BluetoothProfile.STATE_DISCONNECTED) {

                intentAction = ACTION_GATT_DISCONNECTED;

                mConnectionState = STATE_DISCONNECTED;

                Log.i(TAG, "Disconnected from GATT server.");

                broadcastUpdate(intentAction);

            }

        }

原因:

android 提示newState == BluetoothProfile.STATE_CONNECTED

而实际上并不一定连接上了(连接成功是假象),尤其是连接一个不存在的设备。

参考资料:

http://stackoverflow.com/questions/25848764/onservicesdiscoveredbluetoothgatt-gatt-int-status-is-never-called

 

扫描二维码推送至手机访问。

版权声明:本文由鸟的天空发布,如需转载请注明出处。

本文链接:http://www.xjtudll.cn/Exp/447/

标签: BLEAndroid
分享给朋友:

“Android BLE:onServicesDiscovered(BluetoothGatt gatt, int status) 没有回调过” 的相关文章

SQL Server数据库脱机时间太长(脱机联机)

解决办法:强制脱机语句:ALTER DATABASE <dbname> SET OFFLINE WITH ROLLBACK IMMEDIATE联机语句ALTER DATABASE <dbname> SET ONLINE...

电感主要技术参数

电感主要技术参数

1、标称电感量及容许偏差 标称电感量符合E系列,偏差一般在±5%(I级),±10%(II级),±20%(III级)。 2、固有电容与直流电阻 一个线圈的匝与匝,层与层以及绕组与底板间都存在着分布电容,又由于线圈是由导线绕成的,导线有一定的直流电阻,这样,一个实际的电感线圈可等效成一个理想电...

找不到System.Web.dll

找不到System.Web.dll

  这个其实是编译配置选错了。Client Profile里不包含System.Web.dll,只有完整的.Net才有这个。...

金蝶K3:自定义的万能报表位置

金蝶K3:自定义的万能报表位置

场景:客户再【会计总账管理系统】开发了一个万能报表【AAA】 后来因工作交接或者某些原因忘记这个AAA报表放在哪个子系统下了,由于K3子系统非常多,要逐个切换子系统来找自己建立的万能报表再哪里;非常麻烦:使用下面这段脚本查询:select b.FName,* from t_UserDefineRpt...

VS C#错误 未能找到类型或命名空间名称"xxxxxx"的真正原因

问题描述: 明明已经引用了项目(或DLL),但一编译就提示:未能找到类型或者命名空间。 根本原因还是引用的问题,引用错了,然后VS在这上面提示又不够智能 第一种可能: 这种可能性很好排查,A项目所使用的.net版本为3.5,B项目为4.0,那么A引用B是肯定要出事的 而错误提示就是那坑爹的未能找到类...

Cool Edit Pro生成周期性方波

Cool Edit Pro生成周期性方波

工作中有时候要生成一些周期性方波,如下图所示: 利用Cool Edit Pro 2.0可以轻易的做到这一点,操作方法如下: 菜单栏:【生成】-> 【音调】 在弹出的窗口进行如下设置: (1) 勾选 【固定设置】 (2) 设定基础频率,调味特性,频率成分 A、基础频率:要生成的方波的频率 B、...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。