首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AltBeacon测距示例永远不会返回结果

AltBeacon测距示例永远不会返回结果
EN

Stack Overflow用户
提问于 2016-05-25 14:25:56
回答 1查看 389关注 0票数 0

我目前正在开发一个安卓应用程序来检测附近的信标,我正在使用AltBeacon API,我尝试了一个经过修改的这里测距示例代码。

这是我的密码

代码语言:javascript
复制
public class MainActivity extends Activity implements BeaconConsumer {

    protected static final String TAG = "RangingActivity";
    private BeaconManager beaconManager;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        BeaconManager.setsManifestCheckingDisabled(true);

        beaconManager = BeaconManager.getInstanceForApplication(this);

        beaconManager.getBeaconParsers().add(new BeaconParser().
                setBeaconLayout("m:3-4=0215,i:4-19,i:20-21,i:22-23,p:24-24"));

        beaconManager.bind(this);
    }
    @Override
    protected void onDestroy() {
        super.onDestroy();
        beaconManager.unbind(this);
    }
    @Override
    public void onBeaconServiceConnect() {
        beaconManager.setRangeNotifier(new RangeNotifier() {
            @Override
            public void didRangeBeaconsInRegion(Collection<Beacon> beacons, Region region) {
                if (beacons.size() > 0) {
                    Log.i(TAG, "The first beacon I see is about "+beacons.iterator().next().getDistance()+" meters away.");
                }
            }
        });

        try {
            beaconManager.startRangingBeaconsInRegion(new Region("myRangingUniqueId", null, null, null));
        } catch (RemoteException e) {    }
    }
}

我加了这一行

代码语言:javascript
复制
BeaconManager.setsManifestCheckingDisabled(true);

否则,应用程序会在开始时崩溃。参考

我添加了一个beaconParser来解析我的信标(iBeacon布局)

代码语言:javascript
复制
beaconManager.getBeaconParsers().add(new BeaconParser().
                setBeaconLayout("m:3-4=0215,i:4-19,i:20-21,i:22-23,p:24-24"));

问题是我无法在逻辑终端上得到任何响应,就像它不能探测到我的信标一样。

我使用的是摩托罗拉Moto G(第三代)与Android 6.0,我已经给予了必要的许可

代码语言:javascript
复制
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.BLUETOOTH"/>
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>

有什么可以引起这个问题的吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-05-25 15:44:22

您不能检测信标,只要您有崩溃“修复”,在行BeaconManager.setsManifestCheckingDisabled(true);是一种解决方案的自动测试情况下,实际的信标检测是不需要的。因此,您必须删除这一行,并以不同的方式解决崩溃。

如果使用Eclipse,则需要启用清单合并(请参阅上面所指的相同的参考文件)才能使其工作。如果使用Android或其他IDE,这可能是一个如何引用库的问题。如果是这样的话,请展示如何将其与您的项目联系起来。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37440086

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档