159d3d868112f8bbd14f466d0096789548b176d34Robert Greenwalt/* 259d3d868112f8bbd14f466d0096789548b176d34Robert Greenwalt * Copyright (C) 2008 The Android Open Source Project 359d3d868112f8bbd14f466d0096789548b176d34Robert Greenwalt * 459d3d868112f8bbd14f466d0096789548b176d34Robert Greenwalt * Licensed under the Apache License, Version 2.0 (the "License"); 559d3d868112f8bbd14f466d0096789548b176d34Robert Greenwalt * you may not use this file except in compliance with the License. 659d3d868112f8bbd14f466d0096789548b176d34Robert Greenwalt * You may obtain a copy of the License at 759d3d868112f8bbd14f466d0096789548b176d34Robert Greenwalt * 859d3d868112f8bbd14f466d0096789548b176d34Robert Greenwalt * http://www.apache.org/licenses/LICENSE-2.0 959d3d868112f8bbd14f466d0096789548b176d34Robert Greenwalt * 1059d3d868112f8bbd14f466d0096789548b176d34Robert Greenwalt * Unless required by applicable law or agreed to in writing, software 1159d3d868112f8bbd14f466d0096789548b176d34Robert Greenwalt * distributed under the License is distributed on an "AS IS" BASIS, 1259d3d868112f8bbd14f466d0096789548b176d34Robert Greenwalt * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1359d3d868112f8bbd14f466d0096789548b176d34Robert Greenwalt * See the License for the specific language governing permissions and 1459d3d868112f8bbd14f466d0096789548b176d34Robert Greenwalt * limitations under the License. 1559d3d868112f8bbd14f466d0096789548b176d34Robert Greenwalt */ 1659d3d868112f8bbd14f466d0096789548b176d34Robert Greenwalt 1759d3d868112f8bbd14f466d0096789548b176d34Robert Greenwaltpackage com.android.commands.svc; 1859d3d868112f8bbd14f466d0096789548b176d34Robert Greenwalt 19f0e3edc0709dc190190e0ca386478f4a0da92e7aGuang Zhuimport android.content.Context; 2059d3d868112f8bbd14f466d0096789548b176d34Robert Greenwaltimport android.hardware.usb.IUsbManager; 2159d3d868112f8bbd14f466d0096789548b176d34Robert Greenwaltimport android.os.RemoteException; 2259d3d868112f8bbd14f466d0096789548b176d34Robert Greenwaltimport android.os.ServiceManager; 2359d3d868112f8bbd14f466d0096789548b176d34Robert Greenwaltimport android.os.SystemProperties; 2459d3d868112f8bbd14f466d0096789548b176d34Robert Greenwalt 2559d3d868112f8bbd14f466d0096789548b176d34Robert Greenwaltpublic class UsbCommand extends Svc.Command { 2659d3d868112f8bbd14f466d0096789548b176d34Robert Greenwalt public UsbCommand() { 2759d3d868112f8bbd14f466d0096789548b176d34Robert Greenwalt super("usb"); 2859d3d868112f8bbd14f466d0096789548b176d34Robert Greenwalt } 2959d3d868112f8bbd14f466d0096789548b176d34Robert Greenwalt 30f0e3edc0709dc190190e0ca386478f4a0da92e7aGuang Zhu @Override 3159d3d868112f8bbd14f466d0096789548b176d34Robert Greenwalt public String shortHelp() { 3259d3d868112f8bbd14f466d0096789548b176d34Robert Greenwalt return "Control Usb state"; 3359d3d868112f8bbd14f466d0096789548b176d34Robert Greenwalt } 3459d3d868112f8bbd14f466d0096789548b176d34Robert Greenwalt 35f0e3edc0709dc190190e0ca386478f4a0da92e7aGuang Zhu @Override 3659d3d868112f8bbd14f466d0096789548b176d34Robert Greenwalt public String longHelp() { 3759d3d868112f8bbd14f466d0096789548b176d34Robert Greenwalt return shortHelp() + "\n" 3859d3d868112f8bbd14f466d0096789548b176d34Robert Greenwalt + "\n" 3959d3d868112f8bbd14f466d0096789548b176d34Robert Greenwalt + "usage: svc usb setFunction [function]\n" 4059d3d868112f8bbd14f466d0096789548b176d34Robert Greenwalt + " Set the current usb function.\n\n" 4159d3d868112f8bbd14f466d0096789548b176d34Robert Greenwalt + " svc usb getFunction\n" 4259d3d868112f8bbd14f466d0096789548b176d34Robert Greenwalt + " Gets the list of currently enabled functions\n"; 4359d3d868112f8bbd14f466d0096789548b176d34Robert Greenwalt } 4459d3d868112f8bbd14f466d0096789548b176d34Robert Greenwalt 45f0e3edc0709dc190190e0ca386478f4a0da92e7aGuang Zhu @Override 4659d3d868112f8bbd14f466d0096789548b176d34Robert Greenwalt public void run(String[] args) { 4759d3d868112f8bbd14f466d0096789548b176d34Robert Greenwalt boolean validCommand = false; 4859d3d868112f8bbd14f466d0096789548b176d34Robert Greenwalt if (args.length >= 2) { 4959d3d868112f8bbd14f466d0096789548b176d34Robert Greenwalt if ("setFunction".equals(args[1])) { 5059d3d868112f8bbd14f466d0096789548b176d34Robert Greenwalt IUsbManager usbMgr = IUsbManager.Stub.asInterface(ServiceManager.getService( 5159d3d868112f8bbd14f466d0096789548b176d34Robert Greenwalt Context.USB_SERVICE)); 5259d3d868112f8bbd14f466d0096789548b176d34Robert Greenwalt try { 5359d3d868112f8bbd14f466d0096789548b176d34Robert Greenwalt usbMgr.setCurrentFunction((args.length >=3 ? args[2] : null), false); 5459d3d868112f8bbd14f466d0096789548b176d34Robert Greenwalt } catch (RemoteException e) { 5559d3d868112f8bbd14f466d0096789548b176d34Robert Greenwalt System.err.println("Error communicating with UsbManager: " + e); 5659d3d868112f8bbd14f466d0096789548b176d34Robert Greenwalt } 5759d3d868112f8bbd14f466d0096789548b176d34Robert Greenwalt return; 5859d3d868112f8bbd14f466d0096789548b176d34Robert Greenwalt } else if ("getFunction".equals(args[1])) { 5959d3d868112f8bbd14f466d0096789548b176d34Robert Greenwalt System.err.println(SystemProperties.get("sys.usb.config")); 6059d3d868112f8bbd14f466d0096789548b176d34Robert Greenwalt return; 6159d3d868112f8bbd14f466d0096789548b176d34Robert Greenwalt } 6259d3d868112f8bbd14f466d0096789548b176d34Robert Greenwalt } 6359d3d868112f8bbd14f466d0096789548b176d34Robert Greenwalt System.err.println(longHelp()); 6459d3d868112f8bbd14f466d0096789548b176d34Robert Greenwalt } 6559d3d868112f8bbd14f466d0096789548b176d34Robert Greenwalt} 66