У меня есть сервис, который теоретически может работать без активности, связанной с ним (так как «сервисы» предназначены для платформы Android).
Эта служба использует Bluetooth, в частности, регистрирует службу Bluetooth с указанным именем, которое прослушивает связь. Конечно, чтобы он работал, Bluetooth должен быть активным.
Как также показано в документах API Bluetooth, я использую BluetoothAdapter.ACTION_REQUEST_ENABLE
, чтобы предложить пользователю включить Bluetooth, если он еще не включен. Это, однако, действие, и поэтому его нужно вызывать из другого действия, т.е.
Intent enableIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
InstanceOfAnActivity.startActivity(enableIntent);
Чего я хотел бы добиться, так это иметь службу (которая, например, запускается при загрузке), полностью отделенную от любого действия, и, следовательно, не имела бы InstanceOfAnActivity
для запуска всплывающей подсказки пользователю включить Bluetooth.
Теперь я знаю, что есть (позорный) вызов BluetoothAdapter.enable()
, но, как говорит док, его нельзя вызывать напрямую.
Итак, какой совет / решение этой дилеммы? (Может быть, это легко, и я просто что-то упустил ...)