2015-09-16 35 views
9

Ho un controller di gioco collegato al mio dispositivo Android che ha 1 interfaccia con un interrupt in endpoint. So che Android elenca l'endpoint 0 (l'endpoint del controllo) quando enumera gli endpoint e so che posso effettuare un trasferimento di controllo sull'endpoint 0 semplicemente inviandolo attraverso uno degli altri endpoint.Devi reclamare un'interfaccia prima di effettuare un trasferimento di controllo su Endpoint 0?

La mia domanda è: devo richiedere un'interfaccia (qualsiasi interfaccia) prima di eseguire questo trasferimento di controllo? Il framework Android richiede l'accesso esclusivo all'interfaccia prima di parlare con l'endpoint 0, che tecnicamente non appartiene a nessuna interfaccia?

risposta

2

Sì. Vedrai che senza la forza che rivendica l'interfaccia, qualsiasi chiamata di controlTransfer non riesce.

Sfortunatamente, la richiesta di disconnettere il dispositivo USB dal driver del kernel. Quindi, se hai pensato ad es. cambiando la risoluzione di un mouse USB mentre lo usi, noterai che dopo aver cambiato, il mouse non controlla più il tuo dispositivo Android.

+0

In realtà, non riuscivo a togliermi dalla mente questa sessione di domande e risposte, quindi ho fatto ricerche per un po '. Non posso credere che non ci sia una minima possibilità di inviare 'controlTransfer' mentre un dispositivo USB è utilizzato da Android, altrimenti è impossibile configurare tutti quei dettagli del dispositivo che Android ignora. –