Mechanical Gamepad/Joystick cannot work on Android phones!

Unity Version: 2021.3.16
Package Version: 1.4.1

The editor works perfectly under Windows, but when I publish it to my mobile phone, it can’t work and can detect the device. But the device is different from the editor. The interface has changed, not HID, but Android. I can’t add my own device through code, and report errors on Android!

The following code works well in the editor, but Android makes an error.

var description = InputDeviceDescription.FromJson(@"
           {
               ""interface"": ""HID"", 
               ""product"": ""Generic USB  Joystick  "", 
               ""version"": ""263"",
               ""manufacturer"": ""DragonRise inc.  "",
               ""capabilities"": ""{\""vendorId\"":121,\""productId\"":6,\""usage\"":4,\""usagePage\"":1,\""inputReportSize\"":9,\""outputReportSize\"":8,\""featureReportSize\"":0,\""elements\"":[{\""usage\"":1,\""usagePage\"":9,\""unit\"":0,\""unitExponent\"":0,\""logicalMin\"":0,\""logicalMax\"":0,\""physicalMin\"":0,\""physicalMax\"":0,\""collectionIndex\"":0,\""reportType\"":1,\""reportId\"":0,\""reportCount\"":1,\""reportSizeInBits\"":1,\""reportOffsetInBits\"":52,\""flags\"":2},{\""usage\"":2,\""usagePage\"":9,\""unit\"":0,\""unitExponent\"":0,\""logicalMin\"":0,\""logicalMax\"":0,\""physicalMin\"":0,\""physicalMax\"":0,\""collectionIndex\"":0,\""reportType\"":1,\""reportId\"":0,\""reportCount\"":1,\""reportSizeInBits\"":1,\""reportOffsetInBits\"":53,\""flags\"":2},{\""usage\"":3,\""usagePage\"":9,\""unit\"":0,\""unitExponent\"":0,\""logicalMin\"":0,\""logicalMax\"":0,\""physicalMin\"":0,\""physicalMax\"":0,\""collectionIndex\"":0,\""reportType\"":1,\""reportId\"":0,\""reportCount\"":1,\""reportSizeInBits\"":1,\""reportOffsetInBits\"":54,\""flags\"":2},{\""usage\"":4,\""usagePage\"":9,\""unit\"":0,\""unitExponent\"":0,\""logicalMin\"":0,\""logicalMax\"":0,\""physicalMin\"":0,\""physicalMax\"":0,\""collectionIndex\"":0,\""reportType\"":1,\""reportId\"":0,\""reportCount\"":1,\""reportSizeInBits\"":1,\""reportOffsetInBits\"":55,\""flags\"":2},{\""usage\"":5,\""usagePage\"":9,\""unit\"":0,\""unitExponent\"":0,\""logicalMin\"":0,\""logicalMax\"":0,\""physicalMin\"":0,\""physicalMax\"":0,\""collectionIndex\"":0,\""reportType\"":1,\""reportId\"":0,\""reportCount\"":1,\""reportSizeInBits\"":1,\""reportOffsetInBits\"":56,\""flags\"":2},{\""usage\"":6,\""usagePage\"":9,\""unit\"":0,\""unitExponent\"":0,\""logicalMin\"":0,\""logicalMax\"":0,\""physicalMin\"":0,\""physicalMax\"":0,\""collectionIndex\"":0,\""reportType\"":1,\""reportId\"":0,\""reportCount\"":1,\""reportSizeInBits\"":1,\""reportOffsetInBits\"":57,\""flags\"":2},{\""usage\"":7,\""usagePage\"":9,\""unit\"":0,\""unitExponent\"":0,\""logicalMin\"":0,\""logicalMax\"":0,\""physicalMin\"":0,\""physicalMax\"":0,\""collectionIndex\"":0,\""reportType\"":1,\""reportId\"":0,\""reportCount\"":1,\""reportSizeInBits\"":1,\""reportOffsetInBits\"":58,\""flags\"":2},{\""usage\"":8,\""usagePage\"":9,\""unit\"":0,\""unitExponent\"":0,\""logicalMin\"":0,\""logicalMax\"":0,\""physicalMin\"":0,\""physicalMax\"":0,\""collectionIndex\"":0,\""reportType\"":1,\""reportId\"":0,\""reportCount\"":1,\""reportSizeInBits\"":1,\""reportOffsetInBits\"":59,\""flags\"":2},{\""usage\"":9,\""usagePage\"":9,\""unit\"":0,\""unitExponent\"":0,\""logicalMin\"":0,\""logicalMax\"":0,\""physicalMin\"":0,\""physicalMax\"":0,\""collectionIndex\"":0,\""reportType\"":1,\""reportId\"":0,\""reportCount\"":1,\""reportSizeInBits\"":1,\""reportOffsetInBits\"":60,\""flags\"":2},{\""usage\"":10,\""usagePage\"":9,\""unit\"":0,\""unitExponent\"":0,\""logicalMin\"":0,\""logicalMax\"":0,\""physicalMin\"":0,\""physicalMax\"":0,\""collectionIndex\"":0,\""reportType\"":1,\""reportId\"":0,\""reportCount\"":1,\""reportSizeInBits\"":1,\""reportOffsetInBits\"":61,\""flags\"":2},{\""usage\"":11,\""usagePage\"":9,\""unit\"":0,\""unitExponent\"":0,\""logicalMin\"":0,\""logicalMax\"":0,\""physicalMin\"":0,\""physicalMax\"":0,\""collectionIndex\"":0,\""reportType\"":1,\""reportId\"":0,\""reportCount\"":1,\""reportSizeInBits\"":1,\""reportOffsetInBits\"":62,\""flags\"":2},{\""usage\"":12,\""usagePage\"":9,\""unit\"":0,\""unitExponent\"":0,\""logicalMin\"":0,\""logicalMax\"":0,\""physicalMin\"":0,\""physicalMax\"":0,\""collectionIndex\"":0,\""reportType\"":1,\""reportId\"":0,\""reportCount\"":1,\""reportSizeInBits\"":1,\""reportOffsetInBits\"":63,\""flags\"":2},{\""usage\"":1,\""usagePage\"":65280,\""unit\"":0,\""unitExponent\"":0,\""logicalMin\"":0,\""logicalMax\"":0,\""physicalMin\"":0,\""physicalMax\"":0,\""collectionIndex\"":0,\""reportType\"":1,\""reportId\"":0,\""reportCount\"":1,\""reportSizeInBits\"":1,\""reportOffsetInBits\"":64,\""flags\"":2},{\""usage\"":53,\""usagePage\"":1,\""unit\"":0,\""unitExponent\"":0,\""logicalMin\"":0,\""logicalMax\"":255,\""physicalMin\"":0,\""physicalMax\"":255,\""collectionIndex\"":0,\""reportType\"":1,\""reportId\"":0,\""reportCount\"":1,\""reportSizeInBits\"":8,\""reportOffsetInBits\"":40,\""flags\"":2},{\""usage\"":50,\""usagePage\"":1,\""unit\"":0,\""unitExponent\"":0,\""logicalMin\"":0,\""logicalMax\"":255,\""physicalMin\"":0,\""physicalMax\"":255,\""collectionIndex\"":0,\""reportType\"":1,\""reportId\"":0,\""reportCount\"":1,\""reportSizeInBits\"":8,\""reportOffsetInBits\"":32,\""flags\"":2},{\""usage\"":50,\""usagePage\"":1,\""unit\"":0,\""unitExponent\"":0,\""logicalMin\"":0,\""logicalMax\"":255,\""physicalMin\"":0,\""physicalMax\"":255,\""collectionIndex\"":0,\""reportType\"":1,\""reportId\"":0,\""reportCount\"":1,\""reportSizeInBits\"":8,\""reportOffsetInBits\"":32,\""flags\"":2},{\""usage\"":49,\""usagePage\"":1,\""unit\"":0,\""unitExponent\"":0,\""logicalMin\"":0,\""logicalMax\"":255,\""physicalMin\"":0,\""physicalMax\"":255,\""collectionIndex\"":0,\""reportType\"":1,\""reportId\"":0,\""reportCount\"":1,\""reportSizeInBits\"":8,\""reportOffsetInBits\"":16,\""flags\"":2},{\""usage\"":48,\""usagePage\"":1,\""unit\"":0,\""unitExponent\"":0,\""logicalMin\"":0,\""logicalMax\"":255,\""physicalMin\"":0,\""physicalMax\"":255,\""collectionIndex\"":0,\""reportType\"":1,\""reportId\"":0,\""reportCount\"":1,\""reportSizeInBits\"":8,\""reportOffsetInBits\"":8,\""flags\"":2},{\""usage\"":57,\""usagePage\"":1,\""unit\"":20,\""unitExponent\"":0,\""logicalMin\"":0,\""logicalMax\"":7,\""physicalMin\"":0,\""physicalMax\"":315,\""collectionIndex\"":0,\""reportType\"":1,\""reportId\"":0,\""reportCount\"":1,\""reportSizeInBits\"":4,\""reportOffsetInBits\"":48,\""flags\"":66}],\""collections\"":[]}""
           }
       ");

device = InputSystem.AddDevice(description);

When I inserted the joystick, Android listened to the insertion of two devices. The stick and button did not respond. The interface is Android. Does this not support Android phones at all? At that time, the document was written and supported! The following is the description of the added device. It is different from the device description seen by the editor.

2023/03/16 16:31:49.463 4337 4367 Info Unity InputSystem.onDeviceChange: Added, device: AndroidJoystick1, gamepad count: 0, joystick count: 2.
2023/03/16 16:31:49.466 4337 4367 Info Unity Device description: {
2023/03/16 16:31:49.466 4337 4367 Info Unity     "interface": "Android",
2023/03/16 16:31:49.466 4337 4367 Info Unity     "type": "AndroidGameController",
2023/03/16 16:31:49.466 4337 4367 Info Unity     "product": "DragonRise inc.   Generic   USB  Joystick  ",
2023/03/16 16:31:49.466 4337 4367 Info Unity     "serial": "",
2023/03/16 16:31:49.466 4337 4367 Info Unity     "version": "",
2023/03/16 16:31:49.466 4337 4367 Info Unity     "manufacturer": "",
2023/03/16 16:31:49.466 4337 4367 Info Unity     "capabilities": "{\"deviceDescriptor\":\"f4d0e8113f494c5cc815450241006a55d1e71751\",\"productId\":6,\"vendorId\":121,\"isVirtual\":false,\"motionAxes\":[0,1,11,12,14,15,16],\"inputSources\":16777489}"
2023/03/16 16:31:49.466 4337 4367 Info Unity }
2023/03/16 16:31:49.468 4337 4367 Info Unity InputSystem.onDeviceChange: Added, device: Keyboard10, gamepad count: 0, joystick count: 2.
2023/03/16 16:31:49.468 4337 4367 Info Unity Device description: {
2023/03/16 16:31:49.468 4337 4367 Info Unity     "interface": "Android",
2023/03/16 16:31:49.468 4337 4367 Info Unity     "type": "Keyboard",
2023/03/16 16:31:49.468 4337 4367 Info Unity     "product": "DragonRise inc.   Generic   USB  Joystick  ",
2023/03/16 16:31:49.468 4337 4367 Info Unity     "serial": "",
2023/03/16 16:31:49.468 4337 4367 Info Unity     "version": "",
2023/03/16 16:31:49.468 4337 4367 Info Unity     "manufacturer": "",
2023/03/16 16:31:49.468 4337 4367 Info Unity     "capabilities": ""
2023/03/16 16:31:49.468 4337 4367 Info Unity }

Which controller?
Android doesn’t support all controllers, have you verified your phone supports this one

I tested the support of the joystick with the old input system input manager, but the new input system does not support it.