Android различают телевизор и приставку - PullRequest
0 голосов
/ 11 мая 2018

Как можно программно различать телевизор и приставку / игровую приставку на AndroidTV?Этот метод (https://developer.android.com/training/tv/start/hardware) не будет работать, потому что STB с AndroidTV считается телевизором.

1 Ответ

0 голосов
/ 22 мая 2018

Какова твоя цель?

Очевидная причина для этого состоит в том, чтобы определить, подходит ли устройство для игры, в которую можно играть. Если это происходит по какой-либо другой причине, то для получения соответствующей помощи необходимо уточнить цель.

С этим сказал ...

Поскольку невозможно напрямую запрашивать тип устройства - лично я бы искал что-то, что могло бы иметь только игровая приставка.
Другими словами: игровой контроллер / геймпад.

public ArrayList<Integer> getGameControllerIds() {
    ArrayList<Integer> gameControllerDeviceIds = new ArrayList<Integer>();
    int[] deviceIds = InputDevice.getDeviceIds();
    for (int deviceId : deviceIds) {
        InputDevice dev = InputDevice.getDevice(deviceId);
        int sources = dev.getSources();

        // Verify that the device has gamepad buttons, control sticks, or both.
        if (((sources & InputDevice.SOURCE_GAMEPAD) == InputDevice.SOURCE_GAMEPAD)
                || ((sources & InputDevice.SOURCE_JOYSTICK)
                == InputDevice.SOURCE_JOYSTICK)) {
            // This device is a game controller. Store its device ID.
            if (!gameControllerDeviceIds.contains(deviceId)) {
                gameControllerDeviceIds.add(deviceId);
            }
        }
    }
    return gameControllerDeviceIds;
}

Конечно, это не надежно. Очевидно, что ничего не будет возвращено, если геймпад (ы) были отключены в это время (не уверен, когда это произойдет). Не говоря уже о том, что некоторые телевизоры поддерживают геймпады (Samsung приходит в голову в первую очередь), но если вы хотите убедиться, что для приложения имеется адекватный вход, это было бы идеально.

Если геймпад отсутствует, может появиться сообщение «Пожалуйста, подключите геймпад». - при непрерывной проверке в фоновом режиме и автоматической обработке после обнаружения.

...