2016-07-27 83 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您的快速回復。 –