Android IBeaconManager不能从活动中连接
我正在使用Android上的Radius Networks的IBEACON SDK.我目前在一项活动和一项服务中使用iBeaconManager.当应用首次启动时,该活动将绑定其IbeAconManager对象,但是onIBeaconServiceConnect从未被调用.呼叫任何范围或监视功能ex startRangingBeaconsInRegion(region)正在抛出一个remoteexception: The IBeaconManager is not bound to the service. Call iBeaconManager.bind(IBeaconConsumer consumer) and wait for a callback to onIBeaconServiceConnect() 令人惊讶的是,iBeaconMananger.isBound(myActivity)正在返回真实. 现在,当我启动服务时(从活动中解脱并与我的服务结合)时,绑
8 2024-04-01
编程技术问答社区
BLE扫描:回调在 "华为Ascend Mate2手机 "上只被调用一次
我有一个工作的BLE扫描应用程序,该应用程序在Nexus 5上一直运行良好(在4.4到6.0的各种API版本上).今天,我们在具有API 22的不同设备的"华为Ascend Mate2"上运行了该应用程序,发现了我认为是一种有趣或奇特的行为:连续触发回调(大约三次),但是我的Ibeacon仅在一个呼叫中检测到我的Ibeacon,并且在剩下的回调中,它会在房屋中选择其他设备(例如Netgear Router和Roku等;我Donot知道这款NetGear和Rouku是否甚至是BLE设备). 我的BLE扫描代码与此处描述的 http://www.truiton.com/2015/04/android-bluetooth-low-energy-ble-ble-example/ 这个线程 android 4.4 ble扫描缺乏稳定性表明BLE扫描是BLE扫描在5.0+上稳定,但就我而言,这是不正确的,因为我在API上22 这个线程 android ble blle bale beac
6 2024-04-01
编程技术问答社区
startLeScan返回false
BluetoothAdapter的方法令人震惊的方法有时在扫描ble设备期间返回错误.因此,我在应用程序中面临问题.我正在使用Lollipop的较新方法Startscan(Scancallback Callback),但需要支持API级别18及以上.值得赞赏. 解决方案 如果您查看startLeScan 提供了无回调ha 客户已经使用同一回调 启动了扫描 该设备不支持蓝牙LE 发生内部RemoteException 内部呼叫android.bluetooth.IBluetoothGatt registerClient失败. 由于有时这起作用,因此问题可能不是1或3.您可以通过查看是否发生错误出现在logcat中的错误来查看是否是4. 上面的项目2是一个很好的候选人.您确定代码总是在正确停止扫描吗?您可能需要每次开始并停止扫描并确保连续看到两次开头. 如果问题不存在,则可能会留下可能性5,这表明ROM中蓝牙芯片或驱动程序的问题.如果是这种情况,您应该能够在
6 2024-04-01
编程技术问答社区
安卓蓝牙LE API onScanResult扫描记录字节的含义
我正在开发一个应用程序,该应用程序在范围内扫描信标,并向用户显示信标的数据.我正在使用Android蓝牙LE API.在onScanResult()方法中,我得到ScanResult对象,然后将其解析为RAW字节.这是我从一个信标中获得的样本: 02:01:06:1A:FF:4C:00:02:15:74:27:8B:DA:B6:44:45:20:8F:0C:72:0E:AF:05:99:35:00:00:00:01:C5:02:0A:00:08:16:F0:FF:64:00:00:00:01:11:09:4D:69:6E:69:42:65:61:63:6F:6E:5F:33:36:38:35:30:00:00 我发现第一部分的含义没有问题 - 它与iBeacon格式相对应: 02:01:06:1A:FF:4C:00:02:15 - iBeacon prefix 74:27:8B:DA:B6:44:45:20:8F:0C:72:0E:AF:05:99:35 - UUID 0
8 2024-04-01
编程技术问答社区
当用户在车辆中移动时,计算出与信标的距离
如果用户以2-15 kmph的速度在车辆中移动,如何使用BLE信标计算距离?另外,如果距离不会给我准确的结果,那么我可以在我的帮助下进行其他机制最近的信标.由于距离估算中有20秒的滞后,默认实现并不能给我适当的结果. 其次,在哪种情况下应使用ARMA过滤器. 解决方案 信标距离估计仅是估计值,因此您必须相应地设置准确性期望.为了降低无线电信号水平上的噪声,许多样本在一段时间内平均. 找出适当的平均时间取决于用例.如您所指出的, android beaccon库默认情况下使用20秒的运行平均值.这对车辆在过去20秒中的平均水平进行了距离估计. 对于以50米为50米的灯塔传输半径为15公里/小时(〜5米/秒)的车辆,它将在信标范围内最多10秒.您需要进行几次距离测量?如果足够,平均10秒钟以上.如果您需要更多,请设置更短的时间. 了解,减少样本间隔将为距离估计增加更多噪声错误,因为您将使用较少的统计样本.您可以做一些事情来充分利用您获得的样本: 将信标设置为尽
10 2024-04-01
编程技术问答社区
安卓信标库的信标发射器出现错误代码2
我想使用Android Beacon库发送BLE广告.以下是我为此使用的代码. package com.example.beacon_emitter; import java.util.Arrays; import org.altbeacon.beacon.Beacon; import org.altbeacon.beacon.BeaconParser; import org.altbeacon.beacon.BeaconTransmitter; import android.support.v7.app.ActionBarActivity; import android.app.Activity; import android.bluetooth.le.AdvertiseCallback; import android.bluetooth.le.AdvertiseSettings; import android.os.Bundle; import android.util.
4 2024-04-01
编程技术问答社区
安卓4.4 BLE扫描缺乏稳定性
蓝牙Le Jedi会知道如何在便宜的Android 4.4设备上获得可靠的BLE扫描模式吗? 从Android 5到6,一切正常,大多数Android 4.4手机... 但是,在某些带有4.4的廉价手机上,我们遇到随机问题,有些电话没有检测到任何东西,或者有时只有几个信标,具体取决于环境,白天,天气或其他任何状况...显然是由于软件不佳或这方面的硬件,但是是否有任何技巧可以使其更稳定?(例如,定期启用/禁用蓝牙) 编辑 描述典型行为: 首先,请注意,与我可以测试的所有扫描应用程序(estionote,kontakt.io,altbeacon等)完全相同的行为,所以这可能不是应用程序实施的问题. 它仅出现在Android 5(4.4.2、4.4.3、4.4.4)下方,并且在廉价的设备上,例如,从未在三星S5这样的手机上进行. 行为:假设我们有5个信标(少于2米,都可以正常工作). - 重新启动后,手机会发现5个信标1或2分钟. - 然后它在5分钟内没有发
6 2024-04-01
编程技术问答社区
背景信标监测的响应性(安卓信标库/Kontakt SDK / Estimote SDK)。
背景: 我正在开发一个Android应用程序,该应用程序在后台监视特定的信标,并且在输入检测后将执行自定义编码. 我目前正在使用Android Beacon库探索这一点,并且能够在屏幕打开(秒内)的大多数情况下响应地检测信标. 但是,当屏幕关闭时,响应能力会下降,可能需要一分钟到半小时才能检测到. 我想知道是否有提高响应能力的方法,因为我的用法场景需要响应式背景检测而无需打开电话(查看可靠的 我目前正在使用Android 8进行测试,但最终需要支持Android 6+. 特定问题: 1)使用Android Beacon库,我正在使用" New BackgroundPowerSaver(this)"行进行参考应用程序.删除这一行是否可以提高响应能力(在Android 5-7,Android 8中),以增加功率使用? 2)当我尝试删除"新的背景股份(此)"行时,应用程序停止工作(无法监视,也无法进行范围).我在清单中添加了蓝牙和精细的权限.我如何在没有背
30 2024-04-01
编程技术问答社区
如何增加安卓系统中BLE设备的扫描周期?
我试图实施信标扫描程序,我希望Android BLE服务的行为与iOS" DidrangeBeacons"方法相似,即,它应该每秒被调用.但是在Android中,没有这样的方法.但是在Android中,有" Lescancallback"方法,扫描时间不到一秒钟,经常被调用.因此,有什么方法可以在Lescancallback方法中实现我的功能,并将其扫描时间间隔增加到1秒,以便它的行为与iOS的" DidrangeBeacons"方法相似. *不断扫描信标并增加其在Android中的扫描间隔也是不良的编程吗? 预先感谢 解决方案 重要的是要了解Android中没有本机IBEACON支持. Android leScanCallback方法根本不相当于iOS didRangeBeacons方法. leScanCallback方法每当看到蓝牙设备的广告包时,您只会给您回调(广告中设置可连接位的设备仅在首次看到其Mac地址直到停止您停止的设备时,并重新启动扫描).除非您
12 2024-04-01
编程技术问答社区
蓝牙LE的txPower到底是什么,它是如何使用的?
我试图了解什么是txpower以及如何使用它,因为我计划开发和使用信标的Android应用程序. 我在线看到了2个定义: 1.信标的传输能力. 2.接收的功率距灯塔1米. 这两个定义如何相关? 另外,当使用诸如QuickBeacon之类的应用程序从设备传输信号信号时,我该如何确定将功率设置为什么? 解决方案 大多数信标格式在传输中包含一个单个字节,指示您在一米之遥时的预期信号水平应该是什么.此字节有时称为 txpoppoR (传播功率的缩写),有时测量的功率. 不要将其与某些信标模型上的第二个配置设置相混淆,该设备模型可以改变发射机实际发送其广播的强烈强度.这通常称为传输功率,这就是为什么测量的功率不太容易混淆的术语. 测量的电场用于进行距离估计.如果手机看到其信号级别与信标传输的测量电场相同,则它知道它恰好是一米.如果它具有更强的信号,则知道它更接近.如果它具有较弱的信号,它就会知道它已经远.使用公式,您可以大致了解以米为单位的距离.
24 2024-04-01
编程技术问答社区
在Android 5.0 Lollipop上检测到的BLE startScan设备减少了
简短版本: 在与Android 5.0 Lollipop的测试中,我注意到比Android 4.4 Kitkat检测到BLE设备的频率较低.为什么这是一个替代方案? 长版本: 我正在开发专门针对Nexus 7片剂的Android应用程序,该应用集中在检测蓝牙低能(BLE)设备上.该应用主要对信标的RSSI值感兴趣,以确定其靠近平板电脑.这意味着我不需要连接到BLE设备,因为检测到设备时的RSSI值将传递给扫描回调. 在Android 4.4 Kitkat中,当我调用BluetoothAdapter.startLeScan(LeScanCallback)时,每个检测到的BLE设备只会调用一次. (我已经看过一些讨论声称这种行为每个设备可能会有所不同),但是,我对不断变化的RSSI值感兴趣,因此当前推荐的方法是用设定的间隔不断地震惊和拖车(在我的情况下为250ms): public class TheOldWay { private static fi
将iBeacon蓝牙低能量与安卓4.3结合起来
我正在寻找一种从Android设备中检测IBEACON(iOS 7.0功能)的方法.我阅读了Android文档,在这里看来IBEACON是发送其位置的某种Gatt服务器.虽然Android文档说我不应该对该数据进行调查,但是为了检测,这将是Nessesary. i Google很多,但是这个主题是非常新的(我什至创建了一个新标签 iBeacon ),因此,如果我从iOS世界中获得了一些描述实现的iOS世界的链接,我会很高兴.另外,如果有一些我尚未发现的Android Libs会很好. 解决方案 编辑:下面的库已移动到这里: https://github.com/Altroi​​d-AltBeAcon/altroi​​d-beacon/android-beacon-beacon-beacon-library 我已经将ios7 Ibeacon SDK移植到Android上,并能够看到标准的IBEACONS并估算其范围.该代码可在此处提供: 为此,您需要Andr
4 2024-04-01
编程技术问答社区
onServicesDiscovered未在BluetoothGattCallback上调用
我开始与Ibeacon和Android合作.但是您的帮助存在一些问题.在BlutoothGatCallback上,我实现了OnConnectionStateChange并调用DiscoverServices(). Althougth,Discoverservices()返回true,但没有任何回调执行,我希望被召集的onservices被召唤,但不要. @Override public void onConnectionStateChange(BluetoothGatt gatt, int status, int newState) { Log.i(TAG, "onConnectionStateChange : " + status + " newState : " + newState); if (newState == BluetoothProfile.STATE_CONNECTE
4 2024-04-01
编程技术问答社区
安卓5的静态蓝牙MAC地址用于BLE广告
Android 5引入了BLE MAC地址旋转以增加隐私.每次调用bluetoothleadvertiser.startadvertising()时,更改了Mac-Address. 是否可以禁用地址旋转,并且只需在蓝牙光线视图器的整个生命中使用相同的MAC地址吗? 解决方案 MAC地址是一个物理地址,不会更改.在BLE术语中,它是BR/EDR的公共设备地址或BD_ADDR.我没有尝试过,但是使用ReadAddress()阅读它,每次都应返回相同的值. Android的BLE框架在广告时不会使用该地址.相反,它可以通过使用私人解析地址来实现隐私,该地址可能每隔几分钟左右更改一次,但仍然允许使用债券的设备使用Bonding时交换的IRK识别它. 出于明显的隐私原因,Android的BLE框架不允许您设置控制器在广告时使用公共地址.因此,您无法禁用"旋转地址". 其他解决方案 您可以禁用BLE隐私功能以避免MAC地址旋转, 并如下更改Bluedroid源代码:
12 2024-04-01
编程技术问答社区
BluetoothLeAdvertiser在装有Android 5.0的Nexus 5上工作吗?
将我的Nexus 5刷到Android 5.0预览发布Hammerhead-LPX13D后,OS报告说它不再支持蓝牙LE广告.如果您致电: ((BluetoothManager) this.getSystemService(Context.BLUETOOTH_SERVICE)) .getAdapter().getBluetoothLeAdvertiser() 总是返回空.另外,新方法: ((BluetoothManager) this.getSystemService(Context.BLUETOOTH_SERVICE)) .getAdapter().isMultipleAdvertisementSupported() 总是返回false 6月,用于返回第一个Android L预览版本上的有效对象的第一种方法.在刷新最新更新后,它不再这样做. 有人看到其他人吗? 编辑:至少一个人复制了这一点,他们在此处与Google打开了问题: ht
4 2024-04-01
编程技术问答社区
华为Mate 10 Pro手机无法通过altbeacon找到信标。其他手机可以
我正在使用altbeacon: public void startListeningForBeacons(RangeNotifier rangeNotifier) { try { Region region = new Region("all-beacons-region", null, null, null); // Tells the BeaconService to start looking for beacons that match the passed Region object beaconManager.startRangingBeaconsInRegion(region); } catch (RemoteException e) { e.printStackTrace(); } // Specifies a class that should be called e
16 2024-04-01
编程技术问答社区
如何检查由蓝牙扫描引起的电池消耗
我有一个使用Android信标库来检测Eddystone信标的Android应用程序.我想测试由应用程序找到最佳背景和前景扫描速率的电池消耗.在设置> Apps> MyBeaconDetectorApp中,它在蓝牙打开超过一个小时后显示了0%的电池使用情况.我认为该应用程序在后台,因此为0%.但是,如何检查蓝牙扫描引起的电池消耗.我已经将背景捕集的人将其设置为1分钟. 谢谢 解决方案 虽然很难直接测量电池的消耗,但这是我使用的技术: 使用将在后台运行的数量有限的应用程序的测试设备.出厂重置后的库存联系设备是理想的. 将电池充电至100% 将设备放入飞机模式,然后将蓝牙放在. 安装应用程序在后台开始运行.关闭屏幕,并断开设备的USB连接器. 注意开始时间. 让该应用在背景中至少运行8小时,理想情况下,在至少一个信标的情况下. 测量电池水平. 100%的三角洲是流失百分比.请注意此数字和结束时间. 查找您的手机型号电池有多少mah
8 2024-04-01
编程技术问答社区
未调用onBeaconServiceConnect
和以前一样,我与Android Beacon Library合作 它已经有效,我可以通过ble -bluetooth低能找到信标, 但是,现在,在更新到最新版本的库后,现在方法onBeaconServiceConnect()不再运行. 请告诉我我需要做什么才能使它有效, 谢谢, p/s:代码: subtest.xml
6 2024-04-01
编程技术问答社区
使用altBeacon库的安卓系统中没有显示所有的信标
我正在使用 altbeaceCon android库用于开发 ibeacon应用程序Android设备.我正在扫描信标,但是,发现在四个信标中只有两个(有时1/4). i将mBeaconManager.setForegroundScanPeriod(5000l);增加到5秒,但结果仍然相同.我不确定我是否使用CustomAdapter用于绑定细节以查看是错误的,或者问题是与移动设备有关的(我正在使用 Galaxy Note II - (kitkat))? 谁能找到我的错误? 另一个问题是,从设备到信标的距离计算返回不正确(当我在0.5 m范围内,它返回betweem 3-6 m) ) 我在做什么错? 注意:我已经检查了uuid,主要,灯塔的未成年人是否有任何错误.我增加了扫描时间.这些都没有用. 这是开始监视和范围的片段: public class FragmentScanBeacons extends Fragment implements Bea
8 2024-03-27
编程技术问答社区
ServiceNotDeclaredException。BeaconService没有在AndroidManifest.xml中正确声明。
在我的Android项目中运行单元测试时,我会遇到以下错误(在构建应用程序并在设备上运行时,我不会遇到错误): 在AndroidManifest.xml中未正确声明BeaConservice.如果使用Eclipse,请验证您的项目. org.altbeacon.beacon.beaconmanager $ servicenotdeclaredException:beaconservice在androidmanifest.xml中未正确声明.如果使用Eclipse,请验证您的项目. Android Studio自动将AndroidManifest.xml从Android Beacon库合并到我自己的AndroidManifest.xml中,这使得不必在我的AndroidManifest.xml中声明Beacon Services. 这是我当前的androidManifest.xml(位于我的/src/main/文件夹中,我/src/test/folder中没有一个):
12 2024-02-16
编程技术问答社区