diff options
author | The Android Open Source Project <initial-contribution@android.com> | 2009-03-03 19:31:44 -0800 |
---|---|---|
committer | The Android Open Source Project <initial-contribution@android.com> | 2009-03-03 19:31:44 -0800 |
commit | 9066cfe9886ac131c34d59ed0e2d287b0e3c0087 (patch) | |
tree | d88beb88001f2482911e3d28e43833b50e4b4e97 /cmds/svc/src | |
parent | d83a98f4ce9cfa908f5c54bbd70f03eec07e7553 (diff) | |
download | frameworks_base-9066cfe9886ac131c34d59ed0e2d287b0e3c0087.zip frameworks_base-9066cfe9886ac131c34d59ed0e2d287b0e3c0087.tar.gz frameworks_base-9066cfe9886ac131c34d59ed0e2d287b0e3c0087.tar.bz2 |
auto import from //depot/cupcake/@135843
Diffstat (limited to 'cmds/svc/src')
4 files changed, 332 insertions, 0 deletions
diff --git a/cmds/svc/src/com/android/commands/svc/DataCommand.java b/cmds/svc/src/com/android/commands/svc/DataCommand.java new file mode 100644 index 0000000..72cb86d --- /dev/null +++ b/cmds/svc/src/com/android/commands/svc/DataCommand.java @@ -0,0 +1,81 @@ +/* + * Copyright (C) 2008 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.commands.svc; + +import android.os.ServiceManager; +import android.os.RemoteException; +import android.net.IConnectivityManager; +import android.net.ConnectivityManager; +import android.content.Context; +import com.android.internal.telephony.ITelephony; + +public class DataCommand extends Svc.Command { + public DataCommand() { + super("data"); + } + + public String shortHelp() { + return "Control mobile data connectivity"; + } + + public String longHelp() { + return shortHelp() + "\n" + + "\n" + + "usage: svc data [enable|disable]\n" + + " Turn mobile data on or off.\n\n" + + " svc data prefer\n" + + " Set mobile as the preferred data network\n"; + } + + public void run(String[] args) { + boolean validCommand = false; + if (args.length >= 2) { + boolean flag = false; + if ("enable".equals(args[1])) { + flag = true; + validCommand = true; + } else if ("disable".equals(args[1])) { + flag = false; + validCommand = true; + } else if ("prefer".equals(args[1])) { + IConnectivityManager connMgr = + IConnectivityManager.Stub.asInterface(ServiceManager.getService(Context.CONNECTIVITY_SERVICE)); + try { + connMgr.setNetworkPreference(ConnectivityManager.TYPE_MOBILE); + } catch (RemoteException e) { + System.err.println("Failed to set preferred network: " + e); + } + return; + } + if (validCommand) { + ITelephony phoneMgr + = ITelephony.Stub.asInterface(ServiceManager.getService(Context.TELEPHONY_SERVICE)); + try { + if (flag) { + phoneMgr.enableDataConnectivity(); + } else + phoneMgr.disableDataConnectivity(); + } + catch (RemoteException e) { + System.err.println("Mobile data operation failed: " + e); + } + return; + } + } + System.err.println(longHelp()); + } +}
\ No newline at end of file diff --git a/cmds/svc/src/com/android/commands/svc/PowerCommand.java b/cmds/svc/src/com/android/commands/svc/PowerCommand.java new file mode 100644 index 0000000..2b54f54 --- /dev/null +++ b/cmds/svc/src/com/android/commands/svc/PowerCommand.java @@ -0,0 +1,74 @@ +/* + * Copyright (C) 2008 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.commands.svc; + +import android.os.IPowerManager; +import android.os.ServiceManager; +import android.os.RemoteException; +import android.os.BatteryManager; +import android.content.Context; + +public class PowerCommand extends Svc.Command { + public PowerCommand() { + super("power"); + } + + public String shortHelp() { + return "Control the power manager"; + } + + public String longHelp() { + return shortHelp() + "\n" + + "\n" + + "usage: svc power stayon [true|false|usb|ac]\n" + + " Set the 'keep awake while plugged in' setting.\n"; + } + + public void run(String[] args) { + fail: { + if (args.length >= 2) { + if ("stayon".equals(args[1]) && args.length == 3) { + int val; + if ("true".equals(args[2])) { + val = BatteryManager.BATTERY_PLUGGED_AC | + BatteryManager.BATTERY_PLUGGED_USB; + } + else if ("false".equals(args[2])) { + val = 0; + } else if ("usb".equals(args[2])) { + val = BatteryManager.BATTERY_PLUGGED_USB; + } else if ("ac".equals(args[2])) { + val = BatteryManager.BATTERY_PLUGGED_AC; + } + else { + break fail; + } + IPowerManager pm + = IPowerManager.Stub.asInterface(ServiceManager.getService(Context.POWER_SERVICE)); + try { + pm.setStayOnSetting(val); + } + catch (RemoteException e) { + System.err.println("Faild to set setting: " + e); + } + return; + } + } + } + System.err.println(longHelp()); + } +} diff --git a/cmds/svc/src/com/android/commands/svc/Svc.java b/cmds/svc/src/com/android/commands/svc/Svc.java new file mode 100644 index 0000000..1cd4c0d --- /dev/null +++ b/cmds/svc/src/com/android/commands/svc/Svc.java @@ -0,0 +1,99 @@ +/* + * Copyright (C) 2008 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.commands.svc; + +public class Svc { + + public static abstract class Command { + private String mName; + + public Command(String name) { + mName = name; + } + + public String name() { + return mName; + } + + public abstract String shortHelp(); // should fit on one short line + public abstract String longHelp(); // take as much space as you need, 75 col max + public abstract void run(String[] args); // run the command + } + + public static void main(String[] args) { + if (args.length >= 1) { + Command c = lookupCommand(args[0]); + if (c != null) { + c.run(args); + return; + } + } + COMMAND_HELP.run(args); + } + + private static Command lookupCommand(String name) { + final int N = COMMANDS.length; + for (int i=0; i<N; i++) { + Command c = COMMANDS[i]; + if (c.name().equals(name)) { + return c; + } + } + return null; + } + + public static final Command COMMAND_HELP = new Command("help") { + public String shortHelp() { + return "Show information about the subcommands"; + } + public String longHelp() { + return shortHelp(); + } + public void run(String[] args) { + if (args.length == 2) { + Command c = lookupCommand(args[1]); + if (c != null) { + System.err.println(c.longHelp()); + return; + } + } + + System.err.println("Available commands:"); + final int N = COMMANDS.length; + int maxlen = 0; + for (int i=0; i<N; i++) { + Command c = COMMANDS[i]; + int len = c.name().length(); + if (maxlen < len) { + maxlen = len; + } + } + String format = " %-" + maxlen + "s %s"; + for (int i=0; i<N; i++) { + Command c = COMMANDS[i]; + System.err.println(String.format(format, c.name(), c.shortHelp())); + } + } + }; + + public static final Command[] COMMANDS = new Command[] { + COMMAND_HELP, + new PowerCommand(), + new DataCommand(), + new WifiCommand() + }; +} diff --git a/cmds/svc/src/com/android/commands/svc/WifiCommand.java b/cmds/svc/src/com/android/commands/svc/WifiCommand.java new file mode 100644 index 0000000..d29e8b2 --- /dev/null +++ b/cmds/svc/src/com/android/commands/svc/WifiCommand.java @@ -0,0 +1,78 @@ +/* + * Copyright (C) 2008 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.commands.svc; + +import android.os.ServiceManager; +import android.os.RemoteException; +import android.net.wifi.IWifiManager; +import android.net.IConnectivityManager; +import android.net.ConnectivityManager; +import android.content.Context; + +public class WifiCommand extends Svc.Command { + public WifiCommand() { + super("wifi"); + } + + public String shortHelp() { + return "Control the Wi-Fi manager"; + } + + public String longHelp() { + return shortHelp() + "\n" + + "\n" + + "usage: svc wifi [enable|disable]\n" + + " Turn Wi-Fi on or off.\n\n" + + " svc wifi prefer\n" + + " Set Wi-Fi as the preferred data network\n"; + } + + public void run(String[] args) { + boolean validCommand = false; + if (args.length >= 2) { + boolean flag = false; + if ("enable".equals(args[1])) { + flag = true; + validCommand = true; + } else if ("disable".equals(args[1])) { + flag = false; + validCommand = true; + } else if ("prefer".equals(args[1])) { + IConnectivityManager connMgr = + IConnectivityManager.Stub.asInterface(ServiceManager.getService(Context.CONNECTIVITY_SERVICE)); + try { + connMgr.setNetworkPreference(ConnectivityManager.TYPE_WIFI); + } catch (RemoteException e) { + System.err.println("Failed to set preferred network: " + e); + } + return; + } + if (validCommand) { + IWifiManager wifiMgr + = IWifiManager.Stub.asInterface(ServiceManager.getService(Context.WIFI_SERVICE)); + try { + wifiMgr.setWifiEnabled(flag); + } + catch (RemoteException e) { + System.err.println("Wi-Fi operation failed: " + e); + } + return; + } + } + System.err.println(longHelp()); + } +}
\ No newline at end of file |