Android 3.0 использует настройки физической клавиатуры - PullRequest
2 голосов
/ 22 марта 2011

Справочная информация:

Недавно я приобрел планшет 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

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

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

1 Ответ

0 голосов
/ 22 марта 2011

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

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

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

Project OpenИсходный сайт: http://code.google.com/p/futonic-wifioncall/

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

...