デバイスのタイプ(通常のスマートフォンまたはゲームパッド)を検出できるAPP Androidを開発しています。ゲームパッドに接続せずに HTC ONE M7 でテストを行いました。しかし、私のコードはそれがゲームパッドであることを教えてくれます。
これは私のコードです:
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))
{
Log.d(TAG, "device detected : Game Pad");
}
HTC ONE M7 の deviceID = 2 の場合、((sources & InputDevice.SOURCE_GAMEPAD) == InputDevice.SOURCE_GAMEPAD) が true であることがわかりました。そのため、HTC はゲームパッドと見なされます。
誰もがなぜ知っていますか?