Как уменьшить интервал определения дальности в маяке для Android

Я использую Android Beacon Library для одного из своих маячковых решений. Я вижу, что если я вхожу в диапазон маяка, он вызывает функцию "didEnterRegion", но никогда не входит в "didExitRegion", когда я выхожу за пределы области маяка. Я беру приведенный выше код, который я использовал здесь Android iBeacon App не работает в фоновом режиме . В дополнение к этому, есть ли способ уменьшить обнаружение диапазона, потому что я продолжаю получать это очень часто, потому что логически я хочу записывать данные и отправлять уведомление один раз, если клиент вводит маяки в диапазоне 1 м.


person ssnegi    schedule 11.07.2017    source источник
comment
Вы изменили код на основе ответа на связанный вопрос? Можете показать, как это выглядит сейчас?   -  person davidgyoung    schedule 11.07.2017
comment
Не так много изменений ... единственное изменение заключалось в том, чтобы удалить отвязку в onPause в MainActivity   -  person ssnegi    schedule 11.07.2017


Ответы (1)


В коде, показанном в другом вопросе, метод didEnter Region отключает мониторинг с помощью regionBootstrap.disable(). Если вы не хотите его отключать, удалите этот код.

@Override
public void didEnterRegion(Region arg0) {
    Log.d(TAG, "Got a didEnterRegion call");
    // This call to disable will make it so the activity below only gets launched the first time a beacon is seen (until the next time the app is launched)
    // if you want the Activity to launch every single time beacons come into view, remove this call.
    regionBootstrap.disable();
    Intent intent = new Intent(this, MainActivity.class);
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

    // Important:  make sure to add android:launchMode="singleInstance" in the manifest
    // to keep multiple copies of this activity from getting created if the user has
    // already manually launched the app.
    this.startActivity(intent);


}

Если вы не хотите отправлять уведомление, пока пользователю не исполнится ‹ 1 м, вы должны использовать обратный вызов didRangeBeaconsInRegion, а затем запускать уведомление только в том случае, если beacon.getDistance < 1.0.

person davidgyoung    schedule 11.07.2017
comment
Здравствуйте, Дэвид, спасибо за ваш ответ. Я открыл новую тему для другого вопроса, если бы вы могли ответить на него, это было бы здорово. ..stackoverflow.com/questions/45142727/ - person ssnegi; 17.07.2017