Вопрос по android – Расширение Android Bluetooth Обнаружение

2

Я пишу приложение, которое использует устройство Android (для моих текущих целей тестирования - HTC Evo 4G и несколько оригинальных дроидов Motorola), которое можно обнаружить через Bluetooth в течение 300 секунд.

Я нацеливаюсь на Android версии 2.0.1, поэтому в соответствии с API я должен быть в состоянии предложить пользователю включить обнаружение максимум на 300 секунд. На моем Droids и Evo в окне подсказки указано 300 секунд, но оба они заканчиваются через 120 секунд.

Код, который я использовал, чтобы подсказать пользователю, находится здесь:

private void makeDiscoverable() {
    Intent discoverableIntent = new Intent(
            BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE);
    discoverableIntent.putExtra(
            BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION, 300);
    startActivity(discoverableIntent);
}

Я уверен, что этот код работает. Тем не менее, позже у меня есть обработчик для изменения состояния обнаружения (в данном случае, я полагаю), который выглядит следующим образом:

if (isDiscoverableChange(action)) {
            int discoverState = intent.getIntExtra(
                    BluetoothAdapter.EXTRA_SCAN_MODE, Short.MIN_VALUE);
            if (isDiscoverableState(discoverState)) {
                setItOrder();
                setUpScanAndDisplay();
            } else {
                discoverScheduler.cancel();
                itScheduler.cancel();
            }
        }

private boolean isDiscoverableChange(String action) {
    return BluetoothAdapter.ACTION_SCAN_MODE_CHANGED.equals(action);
}

private boolean isDiscoverableState(int state) {
    return state == BluetoothAdapter.SCAN_MODE_CONNECTABLE_DISCOVERABLE;
}

Я попытался закомментировать часть, которая запускается, когда заканчивается режим обнаружения, на случай, если он отменяет все преждевременно, но обнаружение действительно заканчивается через 120 секунд.

Это аппаратная проблема, или я здесь что-то не так делаю?

Вы уверены, что нацеливаетесь на Android 2.0.1 - я не думаю, что есть такая вещь. Tom
Такая вещь, как версия 2.0.1, или такая вещь, как аппаратные ограничения на максимальное время обнаружения? 2.0.1 - это версия прошивки, которую я вижу в настройках, которая должна быть Eclaire, Revision 1 или API Level 6 user1438560

Ваш Ответ

2   ответа
1

Проблема 15486: Адаптер Bluetooth. ДОПОЛНИТЕЛЬНОЕ ОБНАРУЖЕНИЕ не выполняется http://code.google.com/p/android/issues/detail?id=15486

Проблема 13361: BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION intent Extra не увеличивает интервал обнаружения 120 секунд http://code.google.com/p/android/issues/detail?id=13361

Впервые опубликовано 22 декабря 2010 г., но по-прежнему указано как «новое». статус, поэтому я не ожидаю, что это будет исправлено.

Error: User Rate Limit Exceeded user1438560
1

DiscoverableTimeout значение помимо времени ожидания Android.

Обычно,DiscoverableTimeout установлен в файле/system/etc/bluetooth/main.conf до 120

Ты должен написать

DiscoverableTimeout = 0

в/system/etc/bluetooth/main.conf отключить время ожидания Bluetooth. Это позволит вам увеличить время ожидания Android более чем на 120 секунд.

Error: User Rate Limit ExceededsetDiscoverableTimeoutError: User Rate Limit ExceededBluetoothAdapterError: User Rate Limit ExceededDiscoverableTimeout = 0

Похожие вопросы