问题标签 [android-ibeacon]
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 - 如何为 kontakt.io sdk 实现后台服务?
如果我使用我的 Android 设备进入信标区域,我希望显示通知。这在Android SDK 快速入门中有很好的记录
只要应用程序处于活动状态,这就是有效的。应用程序关闭时如何收到通知?
android - 如何使用 Altbeacon android 库检测多个信标?
我在我的 android 设备上使用 AltBeacon 示例应用程序 - altbeacon.org 提供的示例应用程序在这里:https ://github.com/AltBeacon/android-beacon-library-reference
但是,应用程序在启动时只检测并显示一个信标。我的 Android 设备附近有大约 5 个信标。如何检测所有信标?
在 RangingActivity.java 中,我注意到当信标出现时会调用这个方法:
我修改了迭代器以在 while 循环中从集合中读取,如下所示:
但是,应用程序会因此修改而崩溃。
我的问题:
(1) 如何显示我的 Android 设备附近的所有信标?
(2) 如何检测超出区域的信标?
android - 如何更改功率 Estimote 信标?
我正在尝试处理Estimote/Android-SDK
此处的链接
我运行了位于 github 上的演示,它找到了所有传感器(6 个)。但是距离不正确。我的主要问题是如何改变传感器的功率,这就是为什么它在 70 米的距离处有效。我想问5米的距离,超过这个就不行了。以及如何计算距离?到目前为止,请查看我的代码:
android - Android 信标库在一台 Android 4.4 设备上运行良好,但在另一台设备上运行良好
更新:我尝试了一种更直接的方法(参见下面的编辑 3),这会导致手表上的信标缺少有趣的数据。
非工作设备的详细信息。Smartwatch(通用)列为支持蓝牙 4.0 的 MTK6572 芯片组型号 EC720(似乎有很多变体)Android 4.4.2 内核:3.4.67 chendalin-Z87-HD3 #1 Dec 27th 2014 内部版本号:H82D.SMARTWATCH.OC4.0.20141447自定义构建版本:1419655453
我正在使用相同的 Radius Networks Tag 信标测试相同的应用程序。在这个测试中,我的设备附近有相同的 4 个信标。
设备 1 是我尚未更新到 Android L 的 Nexus 7 (2013),它正在运行 4.4.4
设备 2 是一款通用智能手表,在 MTK6572 上运行 android 4.4.2。规格将其列为具有蓝牙 4.0
当我使用 Android 信标库运行我的测试应用程序时,Nexus 会报告信标,但智能手表不会。然而,它似乎检测到它们,我在 logcat 中看到条目,例如:D/BluetoothAdapter:onScanResult() - Device=E5:E0:20:CF:63:32 RSSI=-60。当 BeaconParser 未设置为读取正确类型的信标时,似乎这些消息通常会显示,但在我的情况下,我很确定这不是问题,因为 nexus 看到具有完全相同代码的信标。
两个设备的日志输出看起来非常不同,我开始怀疑手表的 android 版本是否以某种方式禁用了 BLE 支持或堆栈不完整。我已经仔细检查了蓝牙是否已打开,并且还想注意手表具有应用程序权限管理,对于应用程序请求的所有权限,我将其设置为“始终允许”。
来自智能手表时的 logcat 部分:
这是我的代码:
编辑1:
添加更具体的日志条目以尝试显示信标检测的差异:我删除了所有信标,但只有一个信标,我注意到工作设备通过 UUID 识别信标,非工作设备不是。但是我在工作设备的日志中找不到对 Device=E5:E0:20:CF:63:32 的任何引用。
Nexus 7(工作):
智能手表(不工作):
我注意到的另一件事是,在非工作设备中,对 BeaconService 的唯一引用如下:
而在工作设备中,信标的大部分日志记录似乎来自该类......
编辑 - 更新 2:
回应大卫关于 MAC 地址的问题
以下代码:
在工作的 Nexus 7 上产生:
在智能手表上:
因此,BeaconManager(或底层 android API)没有将 ble 设备“视为”为信标,但它确实使用以下行标识了具有相同 MAC 地址的信标:
编辑 3:
我决定退后一步,尝试使用 android 蓝牙 API 直接查询信标。
基本上我只是想输出返回的字节,看看为什么不能识别信标。对于同一个信标,输出看起来完全不同,只有前两个字节有智能手表看到的信标数据,而 nexus 7 有 30 个字节的数据。
我尝试更改 SCAN_TIME 到目前为止没有任何效果。手表接收不到数据是否表明它无法读取ble数据包?
我使用了以下代码:
这是输出:
关系 7(工作):
智能手表(不工作):
ibeacon-android - 监测和测距之间的电池消耗
我正在使用 Alt Beacon 来监视和测距信标。监控始终基于前台和后台扫描时间进行。一旦进入区域,测距就开始并且测距不会停止。我有以下关于测距的问题 1. 即使退出信标范围,测距仍然发生吗?2. 如果测距和监控在运行,是否会消耗更多的电池电量?3. 停止测距后电池消耗会增加吗?
ibeacon - 使用他们的 Android SDK 更改 Kontakt.io 信标特性
我一直在尝试使用 Kontakt.io 的示例 Android 应用程序(可在此地址获得)来实现一个简单的应用程序,该应用程序将连接到 Kontakt 信标并更改主要、次要、txPower 等详细信息。我能够检测到信标并阅读上述所有内容的正确详细信息,但我无法更改它们。查看示例应用程序,步骤应该很简单,这就是我所做的
- onBeaconsDiscovered 有一个 BeaconDevice 对象列表作为参数,因此我选择其中一个 BeaconDevice 对象并将其存储在名为
beacon
. - 然后我说
beacon.setPassword("password".getBytes())
。实际使用的密码是来自 Kontakt.io 网络面板的特定信标的密码。 BeaconConnection beaconConnection = BeaconConnection.newInstance (MyActivity.this, beacon, connListener);
beaconConnection.connect()
根据示例应用程序应该是这样,但它似乎并没有真正起作用。我连接到信标(意味着onConnected()
调用回调),但随后我收到一条错误消息,指出由于密码错误而导致身份验证失败。
我已经尝试过使用来自 Kontakt 的几个不同的信标,使用 Web 面板中的密码,但它不起作用,虽然有可能,但我不认为我只是有一个错误的信标。
他们的文档中有一些关于这些信标的主密码的评论 - 不知道从哪里获得或者是否需要。
我有点怀疑 Kontakt 在这里有这个示例应用程序,但他们还没有在 Google Play 商店上发布它(即他们的代码真的有效吗?)。
无论哪种方式,我都会很感激对我所缺少的东西的任何想法。
我正在尝试将其用作大型应用程序的一部分,该应用程序将使用信标做很多事情,因此需要编写我自己的应用程序。
请注意,这专门针对 Kontakt.io 信标,尤其是他们的 Android SDK。
android - Android Studio Estimote Beacon 应用程序
我试图在 android studio 中制作基本的信标应用程序。我只想扫描信标并将它们列在屏幕上。这是我的代码。我从某个地方带走了它们。
这是我的 manifest.xml 文件:
当我打开应用程序时,它说“停止”请帮忙。我有用于测试的信标。我的错误在哪里?谢谢你。
android - RegionBootstrap 的后期初始化
在参考应用程序中,RegionBootstrap在其onCreate 方法的自定义应用程序类中初始化,当然,在调用任何活动之前调用应用程序类。
有没有办法在活动中初始化 RegionBootstrap?我已经尝试过制作 RegionBootstrap 的静态变量,以便我可以在不同的活动中调用它,但不幸的是,它不起作用。
我需要初始化的区域将来自服务器,因此 RegionBootstrap 的初始化不能来自应用程序类。
* 编辑 *
这是我实施的地方BeaconConsumer
实施BeaconNotifier
android - 红熊灯塔。如何使用蓝牙扫描获取 UUID?
我在 Android 应用程序中使用了一些Red Bear Beacons(在 Android 中作为bluetooth
设备收费),我想将 UUID 存储在信标中,就像它们在本机应用程序中一样。使用他们提供的样本我无法得到它。
我试过的:
第一种方法
第二种方法
这些结果都不420903bf01004915e79610a7f5d060b0
是b0702980-a295-a8ab-f734-031a98a512de
我要找的,应该是这样的:(来自RedBear BeaconTool
应用程序的屏幕截图)
在对我的信标进行一些测试后,我可以看到这个 UUID 以某种方式与我的mBluetoothLeScanner
->找到的 UUID 相关联,b0702980-a295-a8ab-f734-031a98a512de
这让我认为这是相同的,但以不同的方式编码(显示)。
有没有人使用redbear
信标,可以告诉我如何UUID
在我的应用程序中获取信标(E2C56DB5-DFFB-48D2-B060-D0F5A71096E0)?
或者
谁能告诉我是否E2C56DB5-DFFB-48D2-B060-D0F5A71096E0
并b0702980-a295-a8ab-f734-031a98a512de
代表以不同方式编码的同一事物,如果是,如何转换?
希望我足够清楚,请帮助我;任何帮助将不胜感激!谢谢。
android - 应用程序可以向系统注册以获取 Android SDK 21 中的 BLE 设备通知吗?
iOS App 在系统中注册一个 BLE 设备,如果找到该设备,系统会通知 App。
Android 应用程序必须自行扫描。在 Android SDK 21 中有一个新的 BLE 扫描 API,但无法注册 BLE 设备并让系统通知应用程序。
这是正确的,为什么谷歌不支持它?