- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在为一个项目使用 Android IBeacon 库。我需要创建一个服务,开始在后台对信标进行测距,并在找到一个(最近的一个)时通知用户。我已经搜索了很多,并根据我发现的许多示例进行了编码,但它仍然不起作用。使用日志我发现 IBeaconManager 没有绑定,所以 onIBeaconServiceConnect 永远不会被调用。我已经尝试过在这里找到的一些解决方案,但没有一个有用。如果有人可以帮助我解决这个问题,我将不胜感激。我在这里发布我的一些代码
public class RangingService extends Service implements IBeaconConsumer{
private IBeaconManager beaconManager;@Override
public void onCreate()
{
super.onCreate();
beaconManager = IBeaconManager.getInstanceForApplication(this);
Log.d("RangingService","Created beaconManager instance");
beaconManager.setBackgroundBetweenScanPeriod(120000);
beaconManager.setBackgroundScanPeriod(30000);
beaconManager.bind(this);
if(beaconManager.isBound(this))
{
Log.d("RangingService","Beacon manager bound");
}
else
{
Log.d("RangingService","Beacon manager not bound");
}
//Show the service has started
notify("RangingService created", "RangingService has started");
}
@Override
public void onDestroy()
{
super.onDestroy();
beaconManager.unBind(this);
}
@Override
public void onIBeaconServiceConnect()
{
Log.d("RangingService", "Entering onIBeaconServiceConnect");
beaconManager.setRangeNotifier(new RangeNotifier() {
@Override
public void didRangeBeaconsInRegion(Collection<IBeacon> beacons, Region region)
{
if(beacons.size() > 0)
{
IBeacon nearestBeacon = beacons.iterator().next();
for(IBeacon b : beacons)
{
if(nearestBeacon.getProximity() == IBeacon.PROXIMITY_UNKNOWN)
{
nearestBeacon = b;
}
else
{
if(b.getProximity() != IBeacon.PROXIMITY_UNKNOWN)
{
if(b.getAccuracy() < nearestBeacon.getAccuracy())
{
nearestBeacon = b;
}
}
}
}
Log.d("RangingService","Nearest Beacon Found "+nearestBeacon.getMajor()+";"+nearestBeacon.getMinor());
notify("Beacon read","Major: "+nearestBeacon.getMajor()+"; Minor: "+nearestBeacon.getMinor());
}
else
{
Log.d("RangingService","No beacons");
}
}
});
try
{
Log.d("RangingService", "Entering startRangingBeacons");
beaconManager.startRangingBeaconsInRegion(new Region("myRangingUniqueId", null, null, null));
}
catch(RemoteException e)
{
notificar("Error", e.getMessage());
Log.e("RangingService", "Error while starting scanning: "+e.getMessage());
}
}
@Override
public IBinder onBind(Intent intent) {
// TODO Auto-generated method stub
Log.d("RangingService", "Entering onBind");
return null;
}
该服务也已经在我的 list 中。感谢您的帮助。
最佳答案
几点:
该代码表明您使用的是 0.x 版本的 Android iBeacon 库。如果您要开始一个新项目,我强烈建议您使用 Android Beacon Library 2.0 ,因为早期的库不再积极维护,现在很难找到它的文档。
无论您使用的库版本如何,在绑定(bind)到 BeaconManager
后,您都应该能够获得对 onBeaconServiceConnect()
方法的回调。您没有收到此回调的事实可能表明 BeaconService
未正常启动。
BeaconService
没有正常启动的最可能原因是它没有在 list 中正确声明。如果您使用的是 Eclipse,则必须编辑 project.properties
文件并添加行:manifestmerger.enabled=true
。如果您使用的是 AndroidStudio,则没有必要。如果您使用的是 IntelliJ,则可能需要手动声明该服务。
您可以通过查看 bin/AndroidManifest.xml 中生成的 list 文件并验证它是否包含 BeaconService
的条目来验证 list 是否具有正确的条目。
关于android - 在服务上使用 Android IBeacon 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26350020/
我知道 iBeacons 可以将人们发送到应用程序,据我所知,iOS 设备和 Android 设备(4.3+)都可以运行检测它们的应用程序。我想知道是否不是信标将您发送到商店的特定应用程序,而是它是否
Google 的 Proximity Beacon API 文档到处都以 Eddystone 为例: https://developers.google.com/beacons/proximity/r
我们正在与 iBeaons 在跨国多个地点讨论大规模部署方案。提出的问题是 iBeacons 用来宣传其存在的 ID 是否是唯一的?因为我们的客户想要真正确定应用程序只响应特定的 iBeacons,而
我找到了这个关于使用 iBeacon 开发应用程序的好教程: http://www.appcoda.com/ios7-programming-ibeacons-tutorial/ 但是对于这个实现,正
iOS 设备是否可以作为 iBeacon 进行广播并同时监视 iBeacon?我目前正在使用自定义树莓派解决方案执行此操作,并想知道它是否可以转换到设备。 最佳答案 是的,如果应用程序在前台,您可以执
我在网上看到声称新发布的 iOS 7.1 支持 iBeacon。 具体: 系统应该仍会通知您的应用程序didEnterRegion/didExitRegion 事件,即使用户明确杀死你的应用程序。 d
我想知道 iOS 设备是否可以在监听其他 iBeacon 时充当 iBeacon。根据我的阅读,答案似乎应该是“否”,但我非常感谢您给出明确的答案。我会自己测试一下,但我还没有购买额外的 iOS 设备
我正在为 iOS 编写一个应用程序,该应用程序要求该应用程序同时通告 iOS iBeacon 以及通告外围服务。有必要宣传该服务,而不是简单地在外设上发现该服务,因为用例需要中央(用 BLE 术语)在
我正在开发一个 iOS 应用程序,可以检测我周围的 iBeacon 设备。据我了解,我们需要知道特定的 UUID 才能扫描它们。 这里是前任:Search for all iBeacons and n
我已成功修改 reference implementation app Android Beacon Library的使用以下 beacon layout ,以便它检测到我手边的 iBeacon 设备
我正在尝试将 ibeacon 功能集成到 Ionic 2 应用程序中。 我正在使用 https://ionicframework.com/docs/native/ibeacon/插入。 按照文档中提到
我正在尝试编写一个 Cordova 插件,它与 Android 的 Radius Networks iBeacon 库交互。现在,我知道该库是为与 Activity/Service 一起使用而设计的,
我已经检查了以下信标的规范: Eddystone Protocol Specification AltBeacon Protocol Specification v1.0 ibeacon Payloa
我在控制台中有这条消息,但我已经检查了 locationManager.monitoredRegions 和 locationManager.rangedRegions 我的应用程序没有监控到很多区域
我将使用 iOS 7 和蓝牙 4.0 启动 iBeacon 的项目代码。 http://www.appcoda.com/ios7-programming-ibeacons-tutorial/ 准备好上
这个问题已经有答案了: iBeacon / Bluetooth Low Energy (BLE devices) - maximum number of beacons (5 个回答) 已关闭 8 年
我目前有一个应用程序设置可以使用 Azure 通知中心接收远程通知。现在,我想扫描 iBeacons,看看附近是否有特定的 iBeacons,如果是,则不应向用户显示通知。但是,如果看不到信标,用户应
我正在尝试在没有用于测试的实际信标的开发情况下实现 iBeacon。我正在使用“Beacon Bits”,它是在 iPad 上运行的模拟器。我已经尝试过其他信标模拟器来消除模拟器可能是问题的可能性。所
目前我有 3 个发射器和 1 个接收器(4 个设备是 iPhone)设置允许我进行三边测量。 但是,我发现信号波动很大(即使 4 个设备稳定地放在 table 上)。有什么策略可以稳定信号吗? 我应该
我正在使用 tricekit,在他们的示例 sdk 中,我看到了这些背景模式。 我只需要 ibeacon 来触发对我的设备的通知,我应该允许哪些权限? 上次,我允许“充当蓝牙乐配件”,应用商店拒绝了我
我是一名优秀的程序员,十分优秀!