Articles of bluetooth

未生成蓝牙HCI监听日志

我正在运行Android 4.4.2并启用了“Bluetooth HCI snoop log”,如此处所述嗅探/记录您自己的Android蓝牙流量 打开和关闭蓝牙后,我重新启动了手机。 我在预期的位置找不到日志文件: $ adb pull /sdcard/btsnoop_hci.log remote object ‘/sdcard/btsnoop_hci.log’ does not exist 我怎样才能到达btsnoop_hci.log?

由于棉花糖使用BluetoothAdapter.getDefaultAdapter()更新蓝牙发现.startDiscovery(); 被打破

我有一个使用蓝牙和连接到设备的应用程序,无法使用BluetoothAdapter.getDefaultAdapter()find任何设备.startDiscovery(); 它在发现之前就运行良好。 尝试过其他应用程序,它也不适用于其他应用程序。 但我尝试配对的设备(Arduino bt-module)可以在Android设置中find。 知道我能尝试什么吗? 我实现了http://developer.android.com/guide/topics/connectivity/bluetooth.html上描述的所有内容,它在更新之前有效。

java.lang.SecurityException:BLUETOOTH权限崩溃。 (仅限三星设备)

我遇到了以下崩溃,但这只发生在一些三星设备上(并非所有,我们在三星设备上开发/测试) 崩溃日志: java.lang.SecurityException: Need BLUETOOTH permission: Neither user 10025 nor current process has android.permission.BLUETOOTH. at android.os.Parcel.readException(Parcel.java:1540) at android.os.Parcel.readException(Parcel.java:1493) at android.bluetooth.IBluetooth$Stub$Proxy.isEnabled(IBluetooth.java:1156) at android.bluetooth.BluetoothAdapter.isEnabled(BluetoothAdapter.java:697) at org.altbeacon.beacon.service.scanner.CycledLeScanner.finishScanCycle(CycledLeScanner.java:245) at org.altbeacon.beacon.service.scanner.CycledLeScanner.scheduleScanCycleStop(CycledLeScanner.java:234) at org.altbeacon.beacon.service.scanner.CycledLeScanner$1.run(CycledLeScanner.java:230) at android.os.Handler.handleCallback(Handler.java:739) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:145) at android.app.ActivityThread.main(ActivityThread.java:5972) at java.lang.reflect.Method.invoke(Method.java) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1399) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194) 这是我的AndroidManifest: …(more activities here removed) 我真的不知道为什么它只发生在一些设备上; 我最初的猜测是它与三星KNOX有关,而且(少数)崩溃的用户是KNOX用户,他们有一个禁用蓝牙的电话政策。 有没有其他人遇到这个? 或者有人知道这可能是什么?

除IMEI,Android_ID,WLAN Mac和蓝牙地址外,设备的完美unique_id

目的: 我正在寻找一种方法来findAndroid设备的unique_id 。 背景: 我将在登录请求有效负载中使用Id,因为我的应用程序是基于许可证的服务应用程序 ,Id在正常情况下不应更改。 现有方法: 在iOS中,有一些针对iOS的唯一ID解决方案,例如CFUUID或者identifierForVendor,以及Keychain ,Advertising Identifier等……可以按照预期完成这项工作。 但在Android中,我所知道的所有选项似乎都有漏洞。 IMEI: TelephonyManager TelephonyMgr = (TelephonyManager)getSystemService(TELEPHONY_SERVICE); String m_deviceId = TelephonyMgr.getDeviceId(); 缺点 这是依赖SIM卡的 如果没有SIM卡那么我们就注定了 如果有双卡,那么我们就会陷入困境 Android_ID: String m_androidId = Secure.getString(getContentResolver(), Secure.ANDROID_ID); 缺点 如果OS版本升级,则可能会更改 如果设备已植根,则会更改 不能保证device_id是唯一的,有些报告称某些制造商有重复的device_id WLAN MAC地址 WifiManager m_wm = (WifiManager)getSystemService(Context.WIFI_SERVICE); String m_wlanMacAdd = m_wm.getConnectionInfo().getMacAddress(); 缺点 如果没有wifi硬件那么我们就注定了 在一些新设备中,如果关闭wifi,那么我们注定要失败。 蓝牙地址: BluetoothAdapter m_BluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); String m_bluetoothAdd = […]

Android检测蓝牙立即断开最多2秒

我正在寻找一种方法来检测蓝牙设备发生后立即断开(最多2秒),通常在“设备太远”的情况下或设备电池耗尽。 目前我可以通过获取BluetoothDevice.ACTION_ACL_DISCONNECTED来使用BroadcastReceiver检测它,但需要大约16到20秒才能触发。 有没有办法在2秒内收到通知。 我使用BroadcatReceiver,但速度不够快,在2秒Max内得到警报,所以还有其他任何方法可以快速获得蓝牙断开通知。 我用这个createRfcommSocketToServiceRecord(UUID); 连接配对设备,我必须使用UUID使用它。 我已经访问过很多关于这个问题的链接,但没有人符合我的需求。这就是为什么任何帮助都会受到赞赏的原因。 谢谢。

使用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 – 无法连接到Lollipop上的蓝牙设备

我有一个在Android 4.3和4.4上运行良好的应用程序。 该应用程序将连接并与自定义蓝牙设备通信。 在我将Nexus 5突然闪现到Lollipop后,我根本无法连接到设备。 连接结果总是133.这是日志: D/BluetoothGatt﹕ connect() – device: 00:07:80:04:1A:5A, auto: true D/BluetoothGatt﹕ registerApp() D/BluetoothGatt﹕ registerApp() – UUID=xxxxxx-xxxx-xxxxx-xxxx-xxxxxxxx D/BluetoothGatt﹕ onClientRegistered() – status=0 clientIf=6 D/BluetoothGatt﹕ onClientConnectionState() – status=133 clientIf=6 device=00:07:80:04:1A:5A 我的代码: public boolean connect(final String address) { if (mBluetoothAdapter == null || address == null) { return false; } Handler handler = new Handler(Looper.getMainLooper()); // […]

通过蓝牙耳机VoIP接听电话

我正在开发一个VoIP-Android-App和该应用程序需要能够接受/拒绝通话蓝牙耳机。 但问题是在添加连接到SCO之后 audioManager.startBluetoothSco() audioManager.isBluetoothScoOn = true 一旦我点击耳机按钮,我可以听到通常在我接受使用电话呼叫时发出的声音,所以我假设一些android系统组件捕获此信号并且不会进一步抛出它 我已经尝试过了: 1)电话状态监听器(它始终是IDLE) val tm = getSystemService(Context.TELEPHONY_SERVICE) as TelephonyManager phoneStateListener = MyPhoneStateListener() tm.listen(phoneStateListener, PhoneStateListener.LISTEN_CALL_STATE) 2)MediaSession +静音噪音+媒体按钮监听器第一次点击不起作用,第二次+点击正确处理 3)MEDIA_BUTTON接收器不起作用 我在SO上发现了一个类似的问题,但没有答案如何使其工作通过蓝牙耳机接受呼叫 那么我是如何拦截蓝牙耳机服务的蓝牙按钮点击的呢?

Android 2.1:如何轮询现有蓝牙连接的RSSI值?

我需要知道我使用Android 2.1手机连接到远程设备的蓝牙连接的信号强度。 从SDK中,我可以看到我可以在发现远程设备时确定RSSI。 但我无法看到如何随着时间的推移更新RSSI值。 有人可以帮我一把吗? 谢谢!!