Android 3.0 Использовать настройку физической клавиатуры

Задний план:

Недавно я купил планшет Motorola XOOM вместе с настольной док-станцией и аксессуарами для клавиатуры Bluetooth.

Док-станция и клавиатура работают отлично, но когда я снимаю планшет с док-станции, чтобы отойти от стола, клавиатура по-прежнему остается в паре с устройством, и мне приходится вручную изменять настройки, чтобы использовать программную клавиатуру. То же самое происходит, когда я снова устанавливаю его на док-станцию, мне нужно вручную переключить его обратно. Это не огромная проблема, но было бы неплохо не думать об этом.

Итак, я попытался загрузить приложение из магазина, которое просто включало и выключало Bluetooth при подключении или отключении от источника питания, что некоторое время работало хорошо, но фоновая служба умирала по прошествии определенного периода и становилась бесполезной, пока я не перезапустил ее вручную.

К ТОЧНОМУ: Я пытаюсь написать небольшое приложение / сервис для своего планшета, которое будет распознавать, когда он был пристыкован / отстыкован, и соответствующим образом переключать настройку «Использовать физическую клавиатуру».

Я начал с BroadcastReciever, чтобы распознать состояние док-станции:

public class DockBroadcastReciever extends BroadcastReceiver {

    private final String DOCK_STATE_LABEL = "android.intent.extra.DOCK_STATE";

    @Override
    public void onReceive(Context context, Intent intent) {
        Bundle extras = intent.getExtras();
        String message = (extras.getInt(DOCK_STATE_LABEL) == Intent.EXTRA_DOCK_STATE_UNDOCKED) ? "Undocked" : "Docked";

        Toast toast = Toast.makeText(context, message, Toast.LENGTH_LONG);
        toast.show();
    }
}

Но у меня возникли проблемы с определением наилучшего способа обновить настройку после запуска события. Я рассмотрел несколько примеров с использованием InputMethodManager, но все методы, похоже, нуждаются в конкретном EditText или другом вводе для привязки.

Кроме того, я не могу найти соответствующую константу, которая представляет этот параметр где-либо в документации, но графически она находится здесь: http://i.stack.imgur.com/esFaw.png

Кто-нибудь может мне с этим помочь?

Я хотел бы, чтобы было решение для изменения настройки, но я открыт и для других идей.


person jeremyswitzer    schedule 21.03.2011    source источник
comment
Может настройка не доступна программно, нельзя просто блютуз выключить?   -  person alexanderblom    schedule 22.03.2011
comment
Я мог бы, но я полагал, что пока я пишу это сам, я буду нацеливаться на конкретную проблему с клавиатурой на тот случай, если я (или кто-то другой) захочу использовать Bluetooth для чего-то еще (наушники, потоковая передача и т. Д. ) после того, как планшет был отстыкован   -  person jeremyswitzer    schedule 24.03.2011


Ответы (1)


У меня есть приложение, которое делает нечто подобное. Он может переключать Wi-Fi и Bluetooth в зависимости от мощности.

Вам нужно будет зарегистрировать некоторые из этих вещей в файле AndroidManifest.xml.

http://code.google.com/p/futonic-wifioncall/source/browse/AndroidManifest.xml

Сайт проекта с открытым исходным кодом: http://code.google.com/p/futonic-wifioncall/ < / а>

Это не решение, но, надеюсь, даст вам представление о том, чего вы пытаетесь достичь.

person Jeremy Edwards    schedule 22.03.2011
comment
Спасибо! Я взгляну. У меня уже есть манифест Android, сопровождающий код, и я фактически подписал и развернул приложение на своем XOOM. Все, что он делает, это отображает сообщение Toast, когда я закрепляю / отключаю его. Итак, на данный момент не очень полезно, но он никогда не падает и не умирает, как некоторые другие решения на основе служб, которые я пробовал. - person jeremyswitzer; 24.03.2011