2013-01-04 19 views
18

USB電源LEDランプがUSB OTGアダプタを介して、Android 4.0.3搭載のToshiba Excite 10タブレットに接続されているとします。Android USB OTG:プログラムでポートの電源をオフにする

私は、プログラムからUSB OTGホストポートの電源ピンをアプリからオンまたはオフにしたいと考えています。 (理想的には根なしですが、私が得ることができます)。何か案は?

+0

私のカーネルに互換性があるのか​​どうかわかりませんが、 '/ sys/bus/usb/devices/usb3/power/level'ファイルに書き込む必要があるようです。私はルートなしでこれを試しましたが、書き込みが失敗するので、次に私は自分のタブレットを根っこにして再試行する必要があると思います。出典:http://stackoverflow.com/questions/4702216/controlling-a-usb-power-supply-on-off-with-linux – AlcubierreDrive

答えて

2

/sysディレクトリに対する書き込み権限が必要です。根付きはプロセスを非常に簡単にします。ちょうどあなたのデバイスをルートと同様にカーネル・ステータス・ビットをトグルする権利echoコマンドを発行します。

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

もう一つの方法は、libusbを使用して電源を遮断する機能のためのライブラリを掘ることです。 android.hardware.usb.UsbManagerを使用して、libusbの適切なアクセス権を要求することができます。

+0

私はusbが挿入されている(アンドロイドタブレット)が既に挿入されている場合でも、トリガしたい。出来ますか? usbが挿入されていることをシステムに伝える方法はありますか?それで、再び検出されますか? –

0

ここから知っている通りhttps://askubuntu.com/questions/342061/power-on-off-usb-ports "これまでの回答ではUSBサスペンドメカニズム、つまり論理的な電源オフについて言及していましたが、VBUS + 5Vを物理的にUSBポートから切断することはありません。"

おそらくハードウェアの解決策は悪い考えですが、PCB上にプログラムされたAtmega8U4チップを備えたMOSFETトランジスタを使用して、LEDランプの電力を遮断するようにプログラムすることをお勧めします。

関連する問題