问题标签 [bluetoothlescanner]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - Android - 多个 BluetoothBleScanner
我有一个适用于 iOS/Android 的 Cordova 应用程序。应用程序的 Javascript 由网络服务器提供服务,这当然使应用程序的更新非常容易 - 除非是对 Cordova 插件的更改,否则不会发布 AppStore。
现在,该应用程序以几种不同的方式使用 BLE。
- BLE信标
- BLE 温度探头
- BLE pH 探头
- 其他 BLE 设备 - 未来发展
以上每个本质上都是我开发的 Cordova BLE 插件的“迷你”客户端 - 我不能使用 cordova-bluetooth-serial 因为这个插件只允许 1 个 Javascript 客户端。
iOS
在 iOS 下,解决方案很简单,因为应用程序可以根据需要创建尽可能多的 CBCentralManager 实例,并且在内部,iOS 会将这些请求“合并”到硬件,因此我的“BLE Beacons”Javascript 创建了一个新的“BluetoothScanner”对象,该对象在 iOS 中创建一个 CBCentralManager,它可以执行扫描并获取信标的广告数据包(仅限 Eddystone,它不会看到 iBeacon,因为 iOS 将这些转移到 CoreLocation - 我离题了)
安卓
在Android下,我希望一旦我通过以下方式获得了BluetoothAdapter单例实例
那个呼唤
也会返回一个新实例,但它不会返回一个 Singleton 实例,这意味着我不能让单独的“迷你”客户端每个执行自己的扫描(使用自己的 ServiceUUID 过滤器),就像 iOS 支持的那样。
所以,我的问题是 - 有没有一种方法可以为每个“迷你”客户端动态创建一个服务,希望这些服务能够获得自己的 BluetoothLeScanner ?
我想在 Android 应用程序之间,他们每个人都有自己的 BluetoothLeScanner 单例实例,所以希望服务也能。
坦率地说,我并不完全了解 Android 进程空间,所以不知道这是否可能。
如果没有,那么我将不得不自己“虚拟化”BluetoothLeScanner,因此使用单例实例我将不得不将来自“迷你”客户端的扫描请求合并为匹配所有“迷你”客户端要求的请求,并可能过滤广告即时发送给“迷你”客户。
非常感谢任何帮助。
javascript - 使用 Nativescript 访问 Android 列表
短片
我正在尝试List<ScanFilter>
通过访问 Android API 在 JavaScript 中创建一个,如下所示:
var scanFilterList = new java.util.List<android.bluetooth.le.ScanFilter>;
但是,由于意外的标记,JavaScript 给了我一个 SyntaxError,我认为这是因为尖括号。任何帮助克服这个问题和创建一个List<ScanFilter>
将不胜感激!!
长
我想在我的 NativeScript 应用程序中定期运行 BluetoothLE 扫描(目前只担心 android 端),即使屏幕关闭也是如此。据我了解,这是可能的,如文档中所述:
对于未过滤的扫描,扫描会在屏幕关闭时停止以节省电量。再次打开屏幕时会恢复扫描。为避免这种情况,请使用适当的 ScanFilter 进行过滤扫描。 资源
我正在尝试创建一个ScanFilter
用作startScan()
调用时的参数。但是,当我尝试创建一个新列表时,如下所示:
var scanFilterList = new java.util.List<android.bluetooth.le.ScanFilter>;
由于意外的令牌,我收到了 SyntaxError。我假设这是因为尖括号无法被 JavaScript 识别并导致问题。
我怎样才能绕过这个问题并成功地List<ScanFilter>
在 JavaScript 中创建一个变量以供使用。
bluetooth - bluetoothctl don't find my device whereas hcitool can/Can't find device if not trusted
In relation to this post
Is there any answers to this topic ? Because I have the same problem and HackToHell asked to continue on AskUbuntu chat which is not available anymore
Actually i could find my device on Bluetoothctl, i trusted it once and i could see it everytime, but for now that it is untrusted, i can only see it with btmon, that is painful haha. I set all the devices discovering filters but still no effects. With sudo hcitool lescan --duplicates i can see my devices also
So how can i found it back ?
I tried rebooting, restarting Bluetooth, reconfiguring Bluetooth, putting hci0 to reset, down and up states, etcetc but still nothing comes out ... and i have the flags -C and --experimental in the file /lib/systemd/system/bluetooth.service after execstart=... line
Benjamin
java - 尝试获取蓝牙适配器;无法解析方法“GetSystemService(java.lang.String)”
我正在关注 Android Studio 的 BluetoothLE 文档:
https://developer.android.com/guide/topics/connectivity/bluetooth-le#setup
我的目标是设置蓝牙以便能够与我的 java 应用程序一起工作。
为什么我收到“无法解决方法”错误,我该如何解决?另外,如果我只是将'mBluetoothAdapter'声明为变量名,为什么它是一个未知类?
已解决:我相信我的代码没有出错的原因是因为我实际上没有调用任何东西,因为我试图将此代码写入类而不是实际函数。
xamarin.forms - Data Characteristic Changed 适用于一台设备,而不适用于相同的第二台设备
我有一个小程序可以在 Xamarin Forms 应用程序上发送 BluetoothLE 数据。
蓝牙设备是 Honeywell Dex 适配器。手持设备是运行 7.1.1 的 Honeywell CT60 我使用的端口嗅探器是 Device Monitoring Studio
我通过 DataCharacteristicChange 事件写入特征并接收数据。
这就是我获得写入特性的方式
然后我这样做
最后这个
BluetoothGattDescriptor descWrite = WriteCharacteristic.GetDescriptor(CLIENT_CHARACTERISTIC_CONFIG);
descWrite.SetValue(BluetoothGattDescriptor.EnableIndicationValue.ToArray()); gatt.WriteDescriptor(descWrite);
这是在设备 #1 上触发的事件,而不是在设备 #2 上触发的事件
在设备 #1 上,它可以工作,我发送 0x05 并返回 0x10 0x30。0x10 0x30 在 DataCharacteristicChanged 事件中处理。我在我拥有的端口嗅探器中也看到了它。
在与#1 相同的设备#2(相同的OS 7.1.1、升级等)上,相同的操作发送0x05,但我将0x10 0x30 发送到端口嗅探器,但它永远不会到达DataCharacteristicEvent设备#2。
我的问题有两个。有谁知道什么可能导致这种行为。我可以使用哪些工具来检测 2 个相同设备之间的配置差异。
谢谢
bluetooth-lowenergy - 蓝牙扫描结果中的服务 uuid 和服务请求 uuid 有什么区别?
我正在研究蓝牙广告数据。如果我在我的设备上触发蓝牙扫描,远程设备的广告数据将作为结果传送。广告数据上有服务uuid和服务请求uuid。但是,我不知道两个 uuid 有什么区别。
android - SM-G970N(Galaxy S10e) 中未调用 BluetoothLeScanner
我开发了一个包含 ble 功能的应用程序。这个应用程序在我的开发手机上运行良好。但是当我在三星 Galaxy S10e 上使用这个应用程序时,蓝牙无法正常工作。而且我发现BluetoothLeScanner
不叫。我的开发手机是galaxy S8,它的版本是Android 9.0(Pie),API 28。另一个低版本的开发手机(如galaxy 5,galaxy note 4)也运行良好。
但 Galaxy S10e 与 Galaxy S8 的操作系统相同(Android 9.0 Pie,API 28)。我想知道为什么该应用程序在 Galaxy S10e 上运行不佳。
我这样宣布许可
并BluetoothLeScanenr
在这里调用。
Galaxy S10e 中不调用此函数。
BluetoothLeScanner
我应该在 Galaxy S10e 上声明要使用的东西吗?问题是什么?
bluetooth - windows ble 界面 - HCI_VS_MSFT_LE_Monitor_Advertisement 示例?
在 Microsoft 蓝牙文档中,我看到这些 HCI 命令可以发送到 BLE 堆栈
- HCI_VS_MSFT_LE_Monitor_Advertisement
- HCI_VS_MSFT_LE_Cancel_Monitor_Advertisement
我找不到任何示例:
- 打开驱动程序
- 使用上述请求广告
- 接收广告
谁能给我举个例子?
android - 如何从附近的手机获取 BLE 信号?
我正在尝试捕捉 BLE 信号,并通过使用“BluetoothLeScanner”来测量两部手机之间的距离来获取 rssi vlue。
但是,我的程序检测到除了手机上的蓝牙信号之外的每个 BLE_signal。
以下是我在运行程序时使用 Log.e 打印的内容。
'''
以下是 MainActivity、onResume() 和 Bluetooth2 类
...
...
'''
不知道为什么手机收不到信号...
请帮我...
图 1 是我运行蓝牙时蓝牙窗口的屏幕截图。图 2 是现有的 RSSI 分析仪应用程序。正如您在图片中看到的,我的手机可以扫描我的 Galaxy S7 手机并识别它,但我在我的程序日志中看不到它。我应该怎么办?
android - Android 10 蓝牙 LE 扫描问题
我正在尝试让一个简单的蓝牙 LE 扫描应用程序在 Android 10 下运行
扫描开始但未发现设备。
关于 Android 10 所需的正确权限有很多流量,我认为我的权限是正确的,目前,我要求并要求用户:
BLUETOOTH BLUETOOTH_ADMIN ACCESS_FINE_LOCATION FOREGROUND_SERVICE ACCESS_BACKGROUND_LOCATION
该应用程序很简单,只有一个表单、一个开始扫描按钮、一个停止扫描按钮和一个显示结果的文本视图。
有人可以指出我错过了什么吗?
非常感谢
}