2012-02-23 4 views
0

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

Ок, здесь идет:

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

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

BatteryManager: Похоже, с помощью ACTION_BATTERY_CHANGED намерения является способ пойти, и создание вещательного приемника для того, когда это изменится. Правильно ли это?

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

Кроме того, BroadcastReceiver s Я видел примеры в Интернете (-ах), только покажу мне, как запустить намерение - обычно для открытия нового действия. Я предполагаю, что у меня может быть приемник широковещательной передачи, в котором я включу и выключу bluetooth? Может ли цель быть методом, а не просто активностью?

Любая помощь будет оценена!

ответ

0

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

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

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

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

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

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

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

Может быть, намерение - это метод, а не только активность?

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

+0

Hi MisterSquonk, спасибо за ответ :) Я понимаю вашу точку зрения о том, что вы не хотите делать это тихо, но это не будет применяться к моему приложению - это будет просто просто приложение - все, что он сделает, это включить Bluetooth включить и выключить. поэтому, если вы загружаете и устанавливаете его, вы знаете, что получаете. Таким образом, не похоже, что есть способ включить/выключить в фоновом режиме, без диалога, да? У Jucer Defender есть этот вариант, но он не работает ОЧЕНЬ хорошо. Кроме того, чтобы быть ясным, я не боюсь читать много, это всего лишь 4 раза в 5 раз, я не понимаю их объяснения;) – raingod

+0

Я нахожу «никогда» очень сильное слово :) Мы ** ** включение Bluetooth без прямого согласия пользователя, потому что у нас есть приложение профессионального водителя, и он должен постоянно оставаться включенным, независимо от того, что делает пользователь. Я рад, что разработчики Android позволили нам программно принудительно включить Bluetooth, иначе наше приложение потерпит неудачу в реальном мире :) –

 Смежные вопросы

  • Нет связанных вопросов^_^