Android - startActivityForResult вне действия?

У меня есть класс-оболочка (BluetoothDiscoverer), который создается внутри службы. Этот класс получает BluetoothAdapter и проверяет, включен ли Bluetooth перед сканированием соседних устройств.

Теперь, если Bluetooth не включен, я хочу иметь возможность делать следующее в этом классе (BluetoothDiscoverer):

Intent enableBluetoothIntent  = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);

startActivityForResult(enableBluetoothIntent, BLUETOOTH_ENABLER);

Теперь я прочитал это : используйте startActivityForResult из неактивности

, но я не хочу передавать свое основное действие этому объекту, так как я хочу иметь дело с результатом (независимо от того, принимает ли пользователь включение bluetooth или нет) в классе BluetoothDiscoverer.

Теперь, если я сделаю BluetoothDiscoverer подклассом Activity

, я, похоже, получу исключение NullPointerException, когда будет вызвано startActivityForResult.

Я думаю, это потому, что мне нужно добавить метод onCreate () / onDestroy (), но это противоречит цели того, что я делаю, поскольку мне нужно иметь возможность вызывать методы объекта BluetoothDiscoverer в службе, которая создает экземпляр этого класса.

Мне также нужно зарегистрировать широковещательный приемник для получения соседних устройств при сканировании инициирован. Если класс BluetoothDiscoverer не является Activity, как мне зарегистрировать этот приемник?

Есть ли способ обойти это?

Спасибо Андреас

7
задан Community 23 May 2017 в 11:50
поделиться