diff options
| author | The Android Open Source Project <initial-contribution@android.com> | 2008-12-17 18:05:43 -0800 |
|---|---|---|
| committer | The Android Open Source Project <initial-contribution@android.com> | 2008-12-17 18:05:43 -0800 |
| commit | f013e1afd1e68af5e3b868c26a653bbfb39538f8 (patch) | |
| tree | 7ad6c8fd9c7b55f4b4017171dec1cb760bbd26bf /cmds/svc | |
| parent | e70cfafe580c6f2994c4827cd8a534aabf3eb05c (diff) | |
| download | frameworks_base-f013e1afd1e68af5e3b868c26a653bbfb39538f8.zip frameworks_base-f013e1afd1e68af5e3b868c26a653bbfb39538f8.tar.gz frameworks_base-f013e1afd1e68af5e3b868c26a653bbfb39538f8.tar.bz2 | |
Code drop from //branches/cupcake/...@124589
Diffstat (limited to 'cmds/svc')
4 files changed, 176 insertions, 29 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 index 990837f..2b54f54 100644 --- a/cmds/svc/src/com/android/commands/svc/PowerCommand.java +++ b/cmds/svc/src/com/android/commands/svc/PowerCommand.java @@ -19,6 +19,8 @@ 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() { @@ -32,7 +34,7 @@ public class PowerCommand extends Svc.Command { public String longHelp() { return shortHelp() + "\n" + "\n" - + "usage: svc power stayon [true|false]\n" + + "usage: svc power stayon [true|false|usb|ac]\n" + " Set the 'keep awake while plugged in' setting.\n"; } @@ -40,18 +42,23 @@ public class PowerCommand extends Svc.Command { fail: { if (args.length >= 2) { if ("stayon".equals(args[1]) && args.length == 3) { - boolean val; + int val; if ("true".equals(args[2])) { - val = true; + val = BatteryManager.BATTERY_PLUGGED_AC | + BatteryManager.BATTERY_PLUGGED_USB; } else if ("false".equals(args[2])) { - val = false; + 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("power")); + = IPowerManager.Stub.asInterface(ServiceManager.getService(Context.POWER_SERVICE)); try { pm.setStayOnSetting(val); } diff --git a/cmds/svc/src/com/android/commands/svc/Svc.java b/cmds/svc/src/com/android/commands/svc/Svc.java index ae397a0..1cd4c0d 100644 --- a/cmds/svc/src/com/android/commands/svc/Svc.java +++ b/cmds/svc/src/com/android/commands/svc/Svc.java @@ -16,20 +16,6 @@ package com.android.commands.svc; -import android.app.ActivityManagerNative; -import android.app.IActivityManager; -import android.app.IInstrumentationWatcher; -import android.content.ComponentName; -import android.content.Intent; -import android.net.Uri; -import android.os.RemoteException; -import android.os.Bundle; -import android.os.ServiceManager; -import android.view.IWindowManager; - -import java.util.Iterator; -import java.util.Set; - public class Svc { public static abstract class Command { @@ -49,13 +35,6 @@ public class Svc { } public static void main(String[] args) { - if (true) { - for (String a: args) { - System.err.print(a + " "); - } - System.err.println(); - } - if (args.length >= 1) { Command c = lookupCommand(args[0]); if (c != null) { @@ -66,7 +45,7 @@ public class Svc { COMMAND_HELP.run(args); } - private static final Command lookupCommand(String name) { + private static Command lookupCommand(String name) { final int N = COMMANDS.length; for (int i=0; i<N; i++) { Command c = COMMANDS[i]; @@ -112,7 +91,9 @@ public class Svc { }; public static final Command[] COMMANDS = new Command[] { - COMMAND_HELP, - new PowerCommand(), + 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 |
