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");
}
}
感謝@davidgyoung您的快速回復。 –