问题标签 [bluetoothadapter]

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 投票
3 回答
599 浏览

android - 片段:应用程序可能在其主线程上做了太多工作

我在我的应用程序中使用第三个片段。当我来到 3.fragment 时,我想用蓝牙向其他设备发送消息。但我的日志说:

应用程序可能在其主线程上做了太多工作。

而不是我的 AcceptedThread 锁。所以我的 ConnectedThread 是空的。我不能发送任何东西。我该如何解决?这是我的蓝牙服务代码:

0 投票
1 回答
2134 浏览

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

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

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

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

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

在此处输入图像描述

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

0 投票
1 回答
1967 浏览

android - registerReceiver BluetoothAdapter.ACTION_STATE_CHANGED 不起作用

我正在使用 Android Oreo 和蓝牙。当找到新设备以及蓝牙适配器更改其状态时,我想从广播信息中获取。我有以下代码:

为什么我用 BEReceiver_ADD 接收信号而不用 BEReceiver_Adapter?我从不进入 BEReceiver_Adapter。怎么了?

注意:我在 Android 4.1 上尝试了相同的代码,它可以工作。为什么不能使用 Android 8.0?

0 投票
1 回答
206 浏览

ads - java.lang.NoSuchMethodError: org.altbeacon.beacon 的 android.bluetoothAdapter.getBluetoothLeAdvertiser

在华硕、三星平板电脑上出现错误,操作系统版本为 4.4.2 Android 信标库版本。

得到以下问题。

我尝试更新库,处理崩溃,但仍然能够看到以下错误:-

java.lang.NoSuchMethodError: android.bluetooth.BluetoothAdapter.getBluetoothLeAdvertiser at org.altbeacon.beacon.g.(Unknown Source) at com.mangomirror.app.activity.ab(Unknown Source) at com.mangomirror.app.activity.HomeActivity $2.a(Unknown Source) at dg$a$1$1.run(Unknown Source) at android.os.Handler.handleCallback(Handler.java:733) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:136) 在 android.app.ActivityThread.main(ActivityThread.java:5001) 在 java.lang.reflect.Method.invokeNative(Native Method) 在 java.lang.reflect。 Method.invoke(Method.java:515) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)在 dalvik.system.NativeStart.main(本机方法)

以下是我的代码: -

0 投票
1 回答
222 浏览

java - 我的 java 代码无法搜索附近的蓝牙设备

我编写了一个代码来列出附近的蓝牙设备,但我的代码无法检测到任何设备。根据我的代码,当我执行 String action = intent.getAction(); 时,操作只是开始和结束,而不是在日志中打印任何设备;Log.i("动作",动作); 在 BroadCastReciever 下的 onRecieve() 中。

这是我的 MainActivity.java :

这是 AndroidManifest.xml :

0 投票
1 回答
674 浏览

android - 如何使用 a2dp 和 avrcp 蓝牙配置文件连接两个 android 设备?

我正在尝试在两个 android 设备之间实现 a2dp 和 avrcp,我找不到任何合适的参考。我发现了一些,但没有太大帮助。

BluetoothProfileManager profileManager = BluetoothProfileManager.getInstance();

我收到了这个错误:

0 投票
1 回答
55 浏览

android - 如何在我的 Android 应用程序中解决此 NullPointer 错误?

我在 android studio 中制作了一个屏幕,用于管理蓝牙的某些方面,例如搜索设备、打开和关闭等。当我运行应用程序时出现了问题,将蓝牙图像从打开更改为关闭时出现 NullPointer 错误,反之亦然。

到目前为止我的代码(简化):

我在这里得到 NullPointer 异常:

错误:

提前谢谢你

0 投票
1 回答
38 浏览

android - 蓝牙扫描记录相同的值为空

我试图阅读信标扫描结果,一些值来了,但result.getScanRecord().getServiceUuids()总是空的。

而且我也不明白我该如何解析“ result.getScanRecord().getBytes()”。我看到了很多例子,但它无法理解或如此复杂。我需要次要、主要和 uuid 值。

我正在使用minSdkVersion 21.

0 投票
1 回答
194 浏览

android - 为什么 android.bluetooth.BluetoothAdapter#listenUsingL2capOn(int) 无法访问?

这可能是一个新手问题,因为我对 Android 的经验有限,但由于某种原因我无法访问该方法android.bluetooth.BluetoothAdapter#listenUsingL2capOn(int)。它似乎是公开的,因此不确定为什么该符号未被识别。顺便说一句,如何在 android 上打开 L2CAP 蓝牙套接字服务器?我发现只有一个问题与此有关 -如何在 Android 中实例化 L2Cap 套接字?. 任何帮助,将不胜感激。