2016-07-27 76 views
1

我正在研究一个基于beacon设备的应用程序。情景是,当用户到达附近的信标设备范围时,他将收到通知。iBeacon(Kontakt Beacon)区域监控在android

为此,我试图在蓝牙处于关闭状态时监视背景区域,但它不工作,即我没有得到任何回调,即“onRegionEntered”或“onRegionAbandoned”。

所以问题是,当手机的蓝牙功能关闭时(offcource Location(GPS)打开),可以监控一个区域,如果是,那么怎么办,请提供任何示例或代码片段。

因为我们有 “KONTAKT” iBeacon显示设备,所以我用KONTAKT SDK。 Kontakt SDK

我使用这个配置区域监测

private void configureProximityManager() { 
    proximityManager.configuration() 
      .scanMode(ScanMode.BALANCED) 
      .activityCheckConfiguration(ActivityCheckConfiguration.MINIMAL) 
      .forceScanConfiguration(ForceScanConfiguration.MINIMAL) 
      //.deviceUpdateCallbackInterval(2000) 
      .rssiCalculator(RssiCalculators.newLimitedMeanRssiCalculator(5)) 
      .monitoringEnabled(true) 
      .monitoringSyncInterval(3); 

    addReasonForMonitoring(); 

    //GcmNetworkManager.getInstance(this).cancelTask(); 
} 

private void addReasonForMonitoring(){ 
    beaconRegions.clear(); 
    beaconRegions.add(getBeaconReason()); 
    proximityManager.spaces().iBeaconRegions(beaconRegions); 
} 

private BeaconRegion getBeaconReason(){ 
    return new BeaconRegion.Builder() 
      .setIdentifier(FORKSPOT_REASON) 
      .setProximity(UUID.fromString(BEACON_UUID)) 
      //.setMajor(restBeaconsInfo.getMajor()) 
      //.setMinor(restBeaconsInfo.getMinor()) 
      .build(); 

} 
private void startMonitoring() { 
    Log.e(TAG,"start monitoring"); 
    int checkSelfPermission = ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION); 

    if ((PackageManager.PERMISSION_GRANTED == checkSelfPermission) /*&& Utils.getBluetoothState()*/) { 
     proximityManager.connect(new OnServiceReadyListener() { 
      @Override 
      public void onServiceReady() { 
       Log.e(TAG, "startScanning"); 
       proximityManager.startScanning(); 
      } 
     }); 
    } else { 
     Log.e(TAG, "Permission not guaranteed or bluetooth is off"); 
    } 
} 

回答

2

如果蓝牙功能已关闭,无法检测到蓝牙LE信标。这是一个操作系统限制,并非特定于任何一个信标SDK。

虽然这似乎是显而易见的,这是因为谷歌内部扫描Wi-Fi网络的定位目的,即使无线网络被关闭一个公平的问题。但是,对于蓝牙也是如此。

+0

感谢@davidgyoung您的快速回复。 –