настройка широковещательного приемника на включение блютуса - PullRequest
0 голосов
/ 24 февраля 2012

Я новичок в Java и Android и пытаюсь понять, как выполнить следующее действие. Кстати, я нахожу, что официальная документация Google Android НЕ предназначена для новичков и хотела бы, чтобы любое направление было чем-то более ... дружественным для неродных программистов.

Хорошо, вот так:

Я хотел бы включить / выключить Bluetooth автоматически, когда я подключаю / отключаю телефон - ПК или переменный ток.

Итак, я нашел следующие компоненты:

BatteryManager: похоже, что использование намерения ACTION_BATTERY_CHANGED - это путь, и настройка широковещательного приемника на случай, если это изменится. Это правильно?

Я также нашел BluetoothAdapter и в нем есть метод enable (). Который говорит: «не используйте без явного действия пользователя, чтобы включить Bluetooth». - является ли подключение телефона явным действием пользователя? Это правильная вещь для меня, чтобы использовать? То же самое относится и к disable (), конечно.

Кроме того, примеры BroadcastReceiver, которые я видел в Интернете, показывают мне, как запустить намерение - обычно, чтобы открыть новое действие. Я полагаю, я могу заставить Broadcast Receiver запустить метод, при котором я буду включать и выключать Bluetooth? Может ли намерение быть методом, а не просто деятельностью?

Буду признателен за любую помощь!

1 Ответ

0 голосов
/ 24 февраля 2012

BatteryManager: похоже, использование намерения ACTION_BATTERY_CHANGED - это путь, и настройка широковещательного приемника на случай, если это изменится.Это правильно?

Да, это один из способов контролировать такие вещи, как, например, когда подключено зарядное устройство (включая подключение к USB-порту с возможностью зарядки).Вы также можете использовать ACTION_POWER_CONNECTED.

- подключить к телефону явное действие пользователя?

НЕТ - определенно нет, если вы не создадите всплывающее окно с запросомсогласие пользователя.Чтобы процитировать документы для метода enable() ...

Bluetooth никогда не должен быть включен без прямого согласия пользователя. Если вы хотите включить Bluetooth для созданиябеспроводное соединение, , вам следует использовать намерение ACTION_REQUEST_ENABLE, которое вызовет диалог, запрашивающий у пользователя разрешение на включение Bluetooth .Метод enable () предоставляется только для приложений, в которых имеется пользовательский интерфейс для изменения системных настроек, например, приложение «Power Manager».

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

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

Может ли намерение быть методом, а не просто деятельностью?

Нет, нетIntent является частью системы обмена сообщениями.См. Intent и Intent Filters .Да, я знаю, что он не очень "дружественен к новичкам", но Android - сложный зверь, и если вы действительно хотите успешно программировать для него, вы должны прочитать подобные вещи.

...