1) Вы не можете использовать этот конкретный код, потому что вы не можете позвонить startActivity()
из службы. Вам нужно будет использовать следующий код для включения Bluetooth:
BluetoothAdapter mAdapter = BluetoothAdapter.getDefaultAdapter();
mAdapter.enable();
В документации написано
boolean enable()
Включите локальный адаптер Bluetooth - не используйте без явных действий пользователя для включения Bluetooth.
Таким образом, вы должны быть уверены, чтобы сначала предложить пользователю. Также вы не можете настроить устройство на обнаружение в службе, потому что единственный способ сделать это с помощью startActivity()
, поэтому вам потребуется выполнить эту часть в каком-то задании конфигурации.
2) Нет, обнаружение устройства Bluetooth открывает множество проблем с безопасностью, поэтому это не только невозможно, но и плохая идея.
3) Если вы хотите записать на SDCard, вам просто нужно добавить разрешение WRITE_EXTERNAL_STORAGE
в ваш файл манифеста, и тогда вы сможете использовать стандартный ввод-вывод Java File.