问题标签 [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.

0 投票
1 回答
854 浏览

android - Android - 多个 BluetoothBleScanner

我有一个适用于 iOS/Android 的 Cordova 应用程序。应用程序的 Javascript 由网络服务器提供服务,这当然使应用程序的更新非常容易 - 除非是对 Cordova 插件的更改,否则不会发布 AppStore。

现在,该应用程序以几种不同的方式使用 BLE。

  1. BLE信标
  2. BLE 温度探头
  3. BLE pH 探头
  4. 其他 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,因此使用单例实例我将不得不将来自“迷你”客户端的扫描请求合并为匹配所有“迷你”客户端要求的请求,并可能过滤广告即时发送给“迷你”客户。

非常感谢任何帮助。

0 投票
0 回答
79 浏览

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 中创建一个变量以供使用。

0 投票
1 回答
1159 浏览

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

0 投票
1 回答
2134 浏览

java - 尝试获取蓝牙适配器;无法解析方法“GetSystemService(java.lang.String)”

我正在关注 Android Studio 的 BluetoothLE 文档:

https://developer.android.com/guide/topics/connectivity/bluetooth-le#setup

我的目标是设置蓝牙以便能够与我的 java 应用程序一起工作。

为什么我收到“无法解决方法”错误,我该如何解决?另外,如果我只是将'mBluetoothAdapter'声明为变量名,为什么它是一个未知类?

在此处输入图像描述

已解决:我相信我的代码没有出错的原因是因为我实际上没有调用任何东西,因为我试图将此代码写入类而不是实际函数。

0 投票
0 回答
25 浏览

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 个相同设备之间的配置差异。

谢谢

0 投票
0 回答
751 浏览

bluetooth-lowenergy - 蓝牙扫描结果中的服务 uuid 和服务请求 uuid 有什么区别?

我正在研究蓝牙广告数据。如果我在我的设备上触发蓝牙扫描,远程设备的广告数据将作为结果传送。广告数据上有服务uuid​​和服务请求uuid。但是,我不知道两个 uuid 有什么区别。

0 投票
1 回答
160 浏览

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 上声明要使用的东西吗?问题是什么?

0 投票
0 回答
250 浏览

bluetooth - windows ble 界面 - HCI_VS_MSFT_LE_Monitor_Advertisement 示例?

在 Microsoft 蓝牙文档中,我看到这些 HCI 命令可以发送到 BLE 堆栈

参见:https ://docs.microsoft.com/en-us/windows-hardware/drivers/bluetooth/microsoft-defined-bluetooth-hci-commands-and-events

  • HCI_VS_MSFT_LE_Monitor_Advertisement
  • HCI_VS_MSFT_LE_Cancel_Monitor_Advertisement

我找不到任何示例:

  • 打开驱动程序
  • 使用上述请求广告
  • 接收广告

谁能给我举个例子?

0 投票
0 回答
174 浏览

android - 如何从附近的手机获取 BLE 信号?

我正在尝试捕捉 BLE 信号,并通过使用“BluetoothLeScanner”来测量两部手机之间的距离来获取 rssi vlue。

但是,我的程序检测到除了手机上的蓝牙信号之外的每个 BLE_signal。

以下是我在运行程序时使用 Log.e 打印的内容。

'''

以下是 MainActivity、onResume() 和 Bluetooth2 类

...

...

'''

不知道为什么手机收不到信号...

请帮我...

图 1 是我运行蓝牙时蓝牙窗口的屏幕截图。图 2 是现有的 RSSI 分析仪应用程序。正如您在图片中看到的,我的手机可以扫描我的 Galaxy S7 手机并识别它,但我在我的程序日志中看不到它。我应该怎么办?

0 投票
3 回答
2391 浏览

android - Android 10 蓝牙 LE 扫描问题

我正在尝试让一个简单的蓝牙 LE 扫描应用程序在 Android 10 下运行

扫描开始但未发现设备。

关于 Android 10 所需的正确权限有很多流量,我认为我的权限是正确的,目前,我要求并要求用户:

BLUETOOTH BLUETOOTH_ADMIN ACCESS_FINE_LOCATION FOREGROUND_SERVICE ACCESS_BACKGROUND_LOCATION

该应用程序很简单,只有一个表单、一个开始扫描按钮、一个停止扫描按钮和一个显示结果的文本视图。

有人可以指出我错过了什么吗?

非常感谢

}