2013-01-04 21 views
18

Supponiamo di avere una lampada a LED alimentata tramite USB collegata tramite un adattatore USB OTG a un tablet Toshiba Excite 10 con Android 4.0.3, che fornisce la potenza.OTG USB Android: disattivare automaticamente l'alimentazione alla porta

Desidero attivare e disattivare a livello di programmazione i pin di alimentazione della porta host USB OTG da un'app. (Idealmente senza radice, ma prenderò ciò che posso ottenere). Qualche idea?

+0

Non sono sicuro se il mio kernel sia compatibile ma sembra che potrei semplicemente scrivere sul file '/ sys/bus/usb/devices/usb3/power/level'. Ho provato questo senza root ma la scrittura fallisce, quindi suppongo di aver bisogno di radicare il mio tablet e riprovare. Fonte: http://stackoverflow.com/questions/4702216/controlling-a-usb-power-supply-on-off-with-linux – AlcubierreDrive

risposta

2

È necessario disporre dell'autorizzazione alla scrittura nella directory/sys. Il rooting rende il processo molto semplice. Basta radicare il dispositivo ed eseguire il comando echo destra per attivare o disattivare i bit di stato del kernel come:

String[] command = { "/system/bin/sh", "-c", "echo xxx > /sys/bus/usb/devices/usb3/power/level", }; 
Runtime.getRuntime().exec(command); 

Un altro modo è quello di utilizzare libusb, scavare la libreria per la funzione che taglia l'alimentazione. È possibile utilizzare android.hardware.usb.UsbManager per richiedere l'autorizzazione appropriata per libusb.

+0

Desidero attivare USB inserito (tablet Android) anche se USB è già inserito. È possibile? C'è un modo per dire al sistema che l'USB è inserito, quindi verrà rilevato di nuovo? –

0

Come so da qui https://askubuntu.com/questions/342061/power-on-off-usb-ports "Tutte le risposte precedenti parlano di un meccanismo di sospensione USB, vale a dire uno" spegnimento logico ", non taglieranno mai fisicamente il VBUS + 5V dalla porta USB.".

Forse una soluzione hardware è una cattiva idea, ma posso consigliarti di utilizzare il transistor MOSFET con chip Atmega8U4 programmato su PCB, che è programmato per tagliare la potenza della lampada a led.

Problemi correlati