Как получить список USB-устройств, подключенных из сервиса - PullRequest
0 голосов
/ 21 января 2020

Я пишу службу , которая будет отправлять некоторые проприетарные команды на указанное c USB-устройство, подключенное к блоку на основе Android. Ранее я реализовал приложение (с помощью Activity), поэтому оно было довольно простым:

UsbManager manager = (UsbManager) getSystemService(Context.USB_SERVICE);

Мой основной класс:

public class MyService extends IntentService {
 ..
 mUsbManager = (UsbManager) getApplicationContext().getSystemService(USB_SERVICE);

}

И в итоге я получил:

java .lang.NullPointerException: попытка вызвать виртуальный метод 'android .content.Context android .content.Context.getApplicationContext ()' для ссылки на пустой объект

Теперь без активности я не нахожу никаких способов получить экземпляр UsbManager.

Есть ли способ сделать это в службе?

1 Ответ

0 голосов
/ 21 января 2020

getApplicationContext работает в protected void onHandleIntent(Intent intent), поэтому вы должны использовать метод ниже, чтобы получить getApplicationContext -

@Override
public int onStartCommand(Intent intent, int flags, int startId) {
mContext = getApplicationContext();
return super.onStartCommand(intent, flags, startId);
}
...