我试图编写一个应用程序来连接到我的团队正在研究的BLE设备(使用赛普拉斯PSoC先锋板)。现在,我已经挂断了让应用程序检测任何设备。
我在HTC Desire 510上测试应用程序,而我试图检测的设备是运行赛普拉斯接近传感器示例的PSoC板。
经过多次挫折之后,我尝试在我的设备上运行整个API-21 BluetoothLEGatt
样本,它检测到(并且可以连接到)主板没问题。
然后我尝试将整个DeviceScanActivity
复制到我的项目中,只做以下修改:
logcat
条消息onListItemClick
的内容,因为它引用了我没有的活动我的AndroidManifest
同时拥有BLUETOOTH
和BLUETOOTH_ADMIN
,并设置为直接启动活动。
当我在我的项目中运行时,手机没有检测到任何设备,扫描时我得到以下logcat输出:
04-13 17:51:25.350 3892-3892/com.fredwilby.chipper D/BluetoothAdapter﹕ startLeScan(): null
04-13 17:51:25.350 3892-3903/com.fredwilby.chipper D/BluetoothAdapter﹕ onClientRegistered() - status=0 clientIf=5
04-13 17:51:27.350 3892-3892/com.fredwilby.chipper I/Choreographer﹕ Skipped 120 frames! The application may be doing too much work on its main thread.
04-13 17:51:31.940 3892-3892/com.fredwilby.chipper D/BluetoothAdapter﹕ stopLeScan()
与我从Sample项目中扫描时的输出相比:
04-13 18:05:36.750 6887-6887/com.example.android.bluetoothlegatt D/BluetoothAdapter﹕ startLeScan(): null
04-13 18:05:36.750 6887-6899/com.example.android.bluetoothlegatt D/BluetoothAdapter﹕ onClientRegistered() - status=0 clientIf=5
04-13 18:05:37.120 6887-6898/com.example.android.bluetoothlegatt D/BluetoothAdapter﹕ onScanResult() - Device=00:A0:50:00:00:69 RSSI=-59
04-13 18:05:37.120 6887-6898/com.example.android.bluetoothlegatt D/BluetoothDevice﹕ getService() entry
04-13 18:05:38.080 6887-6887/com.example.android.bluetoothlegatt D/BluetoothAdapter﹕ stopLeScan()
每次我从我的应用程序扫描时,我都没有收到有关跳过帧的消息,但这种情况非常频繁,当我尝试制作我编写的代码时更是如此。
我尝试重新启动设备无济于事,我真的不知道此时我还能尝试什么。有没有人知道如何让它发挥作用?
我很乐意发布任何其他有用的信息。我在这里省略了代码,因为正如我上面提到的,它与样本相同,只是非常轻微的化妆调整(扫描代码附近没有任何内容)。
答案 0 :(得分:1)
好吧,我设法通过从<uses-sdk android:minSdkVersion="18" android:targetSdkVersion="21" />
删除AndroidManifest
来解决此问题。当然,这是一种令人愤怒的解决方案,如果有人对此发生的原因有所了解,我会很感激。