AltBeacon 测距示例从未 returns 结果
AltBeacon Ranging Examples never returns a result
我目前正在开发一个 android 应用程序来检测附近的信标,我正在使用 AltBeacon API,我尝试了给定 [=15= 的测距示例代码的修改版本].
这是我的代码
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) { }
}
}
我添加了这一行
BeaconManager.setsManifestCheckingDisabled(true);
否则应用程序会在启动时崩溃。
我添加了一个 beaconParser 来解析我的信标(iBeacon 布局)
beaconManager.getBeaconParsers().add(new BeaconParser().
setBeaconLayout("m:3-4=0215,i:4-19,i:20-21,i:22-23,p:24-24"));
问题是我无法在 logcat 终端中得到任何响应,就像它无法检测到我的信标一样。
我正在使用装有 Android 6.0 的摩托罗拉 Moto G(第 3 代),并且我已授予必要的权限
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.BLUETOOTH"/>
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
任何可能导致问题的想法?
只要您遇到崩溃 "fixed",您就无法检测到信标,方法是放入行 BeaconManager.setsManifestCheckingDisabled(true);
该行是一种解决方法,适用于不需要实际信标检测的自动测试情况。所以你必须删除这一行并以不同的方式解决崩溃问题。
如果使用 Eclipse,您需要启用清单合并(请参阅您在上面指向的同一参考文献)才能使其正常工作。如果使用 Android Studio 或其他 IDE,则可能是您如何引用库的问题。如果是这种情况,请展示您如何 link 它与您的项目。
我目前正在开发一个 android 应用程序来检测附近的信标,我正在使用 AltBeacon API,我尝试了给定 [=15= 的测距示例代码的修改版本].
这是我的代码
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) { }
}
}
我添加了这一行
BeaconManager.setsManifestCheckingDisabled(true);
否则应用程序会在启动时崩溃。
我添加了一个 beaconParser 来解析我的信标(iBeacon 布局)
beaconManager.getBeaconParsers().add(new BeaconParser().
setBeaconLayout("m:3-4=0215,i:4-19,i:20-21,i:22-23,p:24-24"));
问题是我无法在 logcat 终端中得到任何响应,就像它无法检测到我的信标一样。
我正在使用装有 Android 6.0 的摩托罗拉 Moto G(第 3 代),并且我已授予必要的权限
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.BLUETOOTH"/>
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
任何可能导致问题的想法?
只要您遇到崩溃 "fixed",您就无法检测到信标,方法是放入行 BeaconManager.setsManifestCheckingDisabled(true);
该行是一种解决方法,适用于不需要实际信标检测的自动测试情况。所以你必须删除这一行并以不同的方式解决崩溃问题。
如果使用 Eclipse,您需要启用清单合并(请参阅您在上面指向的同一参考文献)才能使其正常工作。如果使用 Android Studio 或其他 IDE,则可能是您如何引用库的问题。如果是这种情况,请展示您如何 link 它与您的项目。