Java Jinput: повторное сканирование / перезагрузка контроллеров
Я использую Javajinput
библиотека для чтения данных с джойстика, и у меня проблемы с перезагрузкойControllers
Я использую это, чтобы загрузить их:
public Controller[] findStickControllers() {
ControllerEnvironment ce =
ControllerEnvironment.getDefaultEnvironment();
Controller[] cs = ce.getControllers();
System.out.println(cs.length); //test
ArrayList<Controller> sel = new ArrayList<>();
for (Controller c: cs) {
if(c.getType() == Type.STICK) {
sel.add(c);
}
}
return sel.toArray(new Controller[]{});
}
Это работает нормально, но если я отсоединяю свой контроллер, вызов этого снова найдет его, и наоборот (при подключении после первой проверки он вообще не найдется).
Я попытался уснуть перед первым поиском, с такими результатами:
Контроллеры проверяются при первом вызове этого метода (не при запуске программы)При повторном вызове он всегда возвращает те же контроллеры, что и в первый раз.Первый звонок также напишет предупреждение нижеДаже когда контроллер подключен (и работает), затем отключен (он все равно найдет его) и снова подключится, он не будет работатьПредупреждение из пункта 3: (плохо отформатирован в списке)
WARNING: Found unknown Windows version: Windows 8
Attempting to use default windows plug-in.
Loading: net.java.games.input.DirectAndRawInputEnvironmentPlugin
Я использую Win 8, и у меня была та же проблема на Win 7. Я также пробовал это с мышью, те же результаты.
Как я могу перезагрузить контроллеры на 2-й, 3-й и так далее?