summaryrefslogtreecommitdiffstats
path: root/cmds/svc
diff options
context:
space:
mode:
authorThe Android Open Source Project <initial-contribution@android.com>2008-12-17 18:05:43 -0800
committerThe Android Open Source Project <initial-contribution@android.com>2008-12-17 18:05:43 -0800
commitf013e1afd1e68af5e3b868c26a653bbfb39538f8 (patch)
tree7ad6c8fd9c7b55f4b4017171dec1cb760bbd26bf /cmds/svc
parente70cfafe580c6f2994c4827cd8a534aabf3eb05c (diff)
downloadframeworks_base-f013e1afd1e68af5e3b868c26a653bbfb39538f8.zip
frameworks_base-f013e1afd1e68af5e3b868c26a653bbfb39538f8.tar.gz
frameworks_base-f013e1afd1e68af5e3b868c26a653bbfb39538f8.tar.bz2
Code drop from //branches/cupcake/...@124589
Diffstat (limited to 'cmds/svc')
-rw-r--r--cmds/svc/src/com/android/commands/svc/DataCommand.java81
-rw-r--r--cmds/svc/src/com/android/commands/svc/PowerCommand.java17
-rw-r--r--cmds/svc/src/com/android/commands/svc/Svc.java29
-rw-r--r--cmds/svc/src/com/android/commands/svc/WifiCommand.java78
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