无法检测与Android信标库ibeacon
问题描述:
我无法检测与Android信标库ibeacon存在。这是我的代码无法检测与Android信标库ibeacon
BeaconManager beaconManager = BeaconManager.getInstanceForApplication(this);
beaconManager = BeaconManager.getInstanceForApplication(this);
if (beaconManager != null && !beaconManager.isBound(this)) {
beaconManager.getBeaconParsers().add(new BeaconParser().
setBeaconLayout("m:0-3=4c000215,i:4-19,i:20-21,i:22-23,p:24-24"));
beaconManager.bind(this);
而在onBeaconServiceConnect方法
public void onBeaconServiceConnect() {
BeaconManager beaconManager = BeaconManager.getInstanceForApplication(this);
beaconManager.setRangeNotifier(new RangeNotifier() {
@Override
public void didRangeBeaconsInRegion(Collection<Beacon> beacons, Region region) {
for (Beacon beacon : beacons) {
Log.i("MainActivity", "I see a beacon that is about "+beacon.getDistance()+" meters away.");
System.out.print("Beacon seen"+ beacon.getId1());
}
}
});
try {
beaconManager.startRangingBeaconsInRegion(new Region("myRangingUniqueId", null, null, null));
} catch (RemoteException e) { }
}
我也在我的AndroidManifest.xml
<uses-sdk
android:minSdkVersion="18"
android:targetSdkVersion="18" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.BLUETOOTH"/>
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
加入这个权限在输出
16:59:26.571 3571-3571/com.example.kev.altbeacon W/BluetoothCrashResolver: Can't read macs from BluetoothCrashResolverState.txt
04-23 16:59:26.581 3571-3571/com.example.kev.altbeacon W/ModelSpecificDistanceCalculator: Cannot find match for this device. Using default
04-23 16:59:26.581 3571-3571/com.example.kev.altbeacon W/ModelSpecificDistanceCalculator: Cannot find match for this device. Using default
04-23 16:59:26.581 3571-3571/com.example.kev.altbeacon E/MonitoringStatus: Deserialization exception, message: $s
04-23 16:59:26.621 3571-3635/com.example.kev.altbeacon D/libEGL: loaded /vendor/lib64/egl/libGLES_mali.so
04-23 16:59:26.641 3571-3635/com.example.kev.altbeacon D/libEGL: eglInitialize EGLDisplay = 0x7f8787f178
04-23 16:59:26.641 3571-3635/com.example.kev.altbeacon I/OpenGLRenderer: Initialized EGL, version 1.4
04-23 16:59:26.641 3571-3635/com.example.kev.altbeacon D/mali_winsys: new_window_surface returns 0x3000, [1440x2560]-format:1
04-23 16:59:26.651 3571-3571/com.example.kev.altbeacon W/DisplayListCanvas: DisplayListCanvas is started on unbinded RenderNode (without mOwningView)
04-23 16:59:26.651 3571-3635/com.example.kev.altbeacon D/libGLESv1: DTS_GLAPI : DTS is not allowed for Package : com.example.kev.altbeacon
04-23 16:59:26.761 3571-3571/com.example.kev.altbeacon I/InjectionManager: dispatchCreateOptionsMenu :com.example.kev.altbeacon.MainActivity
04-23 16:59:26.761 3571-3571/com.example.kev.altbeacon I/InjectionManager: dispatchPrepareOptionsMenu :com.example.kev.altbeacon.MainActivity
04-23 16:59:26.761 3571-3571/com.example.kev.altbeacon D/ViewRootImpl: MSG_RESIZED_REPORT: ci=Rect(0, 96 - 0, 0) vi=Rect(0, 96 - 0, 0) or=1
04-23 16:59:26.791 3571-3571/com.example.kev.altbeacon I/Timeline: Timeline: Activity_idle id: [email protected] time:27543539
04-23 16:59:27.881 3571-3571/com.example.kev.altbeacon D/BluetoothAdapter: STATE_ON
04-23 16:59:27.881 3571-3571/com.example.kev.altbeacon D/BluetoothAdapter: STATE_ON
04-23 16:59:27.881 3571-3571/com.example.kev.altbeacon D/BluetoothAdapter: STATE_ON
04-23 16:59:27.881 3571-3571/com.example.kev.altbeacon D/BluetoothAdapter: STATE_ON
04-23 16:59:27.881 3571-3571/com.example.kev.altbeacon D/BluetoothLeScanner: could not find callback wrapper
04-23 16:59:28.991 3571-3571/com.example.kev.altbeacon D/BluetoothAdapter: STATE_ON
04-23 16:59:28.991 3571-3571/com.example.kev.altbeacon D/BluetoothAdapter: STATE_ON
04-23 16:59:28.991 3571-3571/com.example.kev.altbeacon D/BluetoothLeScanner: could not find callback wrapper
04-23 16:59:30.101 3571-3571/com.example.kev.altbeacon D/BluetoothAdapter: STATE_ON
04-23 16:59:30.101 3571-3571/com.example.kev.altbeacon D/BluetoothAdapter: STATE_ON
04-23 16:59:30.101 3571-3571/com.example.kev.altbeacon D/BluetoothLeScanner: could not find callback wrapper
04-23 16:59:31.241 3571-3571/com.example.kev.altbeacon D/BluetoothAdapter: STATE_ON
我尝试了代码w ith两个不同的电话,它不适用于任何人。这个输出是当我用Samsung S6来测试代码的时候。随着三星S4我没有得到这个状态OK /不能找到......的消息,我只是这个
04-23 17:09:22.290 26020-26020/com.example.kev.altbeacon I/Timeline: Timeline: Activity_idle id: [email protected] time:6819065
04-23 17:09:36.083 26020-26020/com.example.kev.altbeacon V/ActivityThread: updateVisibility : ActivityRecord{1a3840b9 [email protected] {com.example.kev.altbeacon/com.example.kev.altbeacon.MainActivity}} show : true
答
一些提示:
如果您的设备具有的Android 6 +,则必须确保您具有如下所述的授予的位置权限:http://developer.radiusnetworks.com/2015/09/29/is-your-beacon-app-ready-for-android-6.html
尝试使用此相同库的现成Locate app。如果该应用程序无法检测到信标,则信标发射器本身可能存在问题。
确保在设置中打开位置。
确保设置中的蓝牙已打开。
谢谢。我授予链接中描述的权限,并且工作正常。此外,该位置已启用,但不适用于该应用程序。 – user3235881