summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--cmds/telecom/src/com/android/commands/telecom/Telecom.java48
-rw-r--r--packages/Shell/AndroidManifest.xml5
2 files changed, 44 insertions, 9 deletions
diff --git a/cmds/telecom/src/com/android/commands/telecom/Telecom.java b/cmds/telecom/src/com/android/commands/telecom/Telecom.java
index 250b002..cdf7429 100644
--- a/cmds/telecom/src/com/android/commands/telecom/Telecom.java
+++ b/cmds/telecom/src/com/android/commands/telecom/Telecom.java
@@ -20,6 +20,7 @@ import android.content.ComponentName;
import android.content.Context;
import android.os.RemoteException;
import android.os.ServiceManager;
+import android.telecom.PhoneAccount;
import android.telecom.PhoneAccountHandle;
import android.text.TextUtils;
@@ -39,8 +40,10 @@ public final class Telecom extends BaseCommand {
(new Telecom()).run(args);
}
- private static final String COMMAND_SET_PHONE_ACOUNT_ENABLED = "set-phone-account-enabled";
- private static final String COMMAND_SET_PHONE_ACOUNT_DISABLED = "set-phone-account-disabled";
+ private static final String COMMAND_SET_PHONE_ACCOUNT_ENABLED = "set-phone-account-enabled";
+ private static final String COMMAND_SET_PHONE_ACCOUNT_DISABLED = "set-phone-account-disabled";
+ private static final String COMMAND_REGISTER_PHONE_ACCOUNT = "register-phone-account";
+ private static final String COMMAND_UNREGISTER_PHONE_ACCOUNT = "unregister-phone-account";
private static final String COMMAND_SET_DEFAULT_DIALER = "set-default-dialer";
private static final String COMMAND_GET_DEFAULT_DIALER = "get-default-dialer";
@@ -54,6 +57,8 @@ public final class Telecom extends BaseCommand {
"usage: telecom [subcommand] [options]\n" +
"usage: telecom set-phone-account-enabled <COMPONENT> <ID>\n" +
"usage: telecom set-phone-account-disabled <COMPONENT> <ID>\n" +
+ "usage: telecom register-phone-account <COMPONENT> <ID> <LABEL>\n" +
+ "usage: telecom unregister-phone-account <COMPONENT> <ID>\n" +
"usage: telecom set-default-dialer <PACKAGE>\n" +
"usage: telecom get-default-dialer <PACKAGE>\n" +
"\n" +
@@ -63,9 +68,9 @@ public final class Telecom extends BaseCommand {
"telecom set-phone-account-disabled: Disables the given phone account, if it \n" +
" has already been registered with telecom.\n" +
"\n" +
- "telecom set-default_dialer: Sets the default dialer to the given component. \n" +
+ "telecom set-default-dialer: Sets the default dialer to the given component. \n" +
"\n" +
- "telecom get-default_dialer: Displays the current default dialer. \n"
+ "telecom get-default-dialer: Displays the current default dialer. \n"
);
}
@@ -80,12 +85,18 @@ public final class Telecom extends BaseCommand {
String command = nextArgRequired();
switch (command) {
- case COMMAND_SET_PHONE_ACOUNT_ENABLED:
+ case COMMAND_SET_PHONE_ACCOUNT_ENABLED:
runSetPhoneAccountEnabled(true);
break;
- case COMMAND_SET_PHONE_ACOUNT_DISABLED:
+ case COMMAND_SET_PHONE_ACCOUNT_DISABLED:
runSetPhoneAccountEnabled(false);
break;
+ case COMMAND_REGISTER_PHONE_ACCOUNT:
+ runRegisterPhoneAccount();
+ break;
+ case COMMAND_UNREGISTER_PHONE_ACCOUNT:
+ runUnregisterPhoneAccount();
+ break;
case COMMAND_SET_DEFAULT_DIALER:
runSetDefaultDialer();
break;
@@ -98,9 +109,7 @@ public final class Telecom extends BaseCommand {
}
private void runSetPhoneAccountEnabled(boolean enabled) throws RemoteException {
- final ComponentName component = parseComponentName(nextArgRequired());
- final String accountId = nextArgRequired();
- final PhoneAccountHandle handle = new PhoneAccountHandle(component, accountId);
+ final PhoneAccountHandle handle = getPhoneAccountHandleFromArgs();
final boolean success = mTelecomService.enablePhoneAccount(handle, enabled);
if (success) {
System.out.println("Success - " + handle + (enabled ? " enabled." : " disabled."));
@@ -109,6 +118,21 @@ public final class Telecom extends BaseCommand {
}
}
+ private void runRegisterPhoneAccount() throws RemoteException {
+ final PhoneAccountHandle handle = getPhoneAccountHandleFromArgs();
+ final String label = nextArgRequired();
+ PhoneAccount account = PhoneAccount.builder(handle, label)
+ .setCapabilities(PhoneAccount.CAPABILITY_CALL_PROVIDER).build();
+ mTelecomService.registerPhoneAccount(account);
+ System.out.println("Success - " + handle + " registered.");
+ }
+
+ private void runUnregisterPhoneAccount() throws RemoteException {
+ final PhoneAccountHandle handle = getPhoneAccountHandleFromArgs();
+ mTelecomService.unregisterPhoneAccount(handle);
+ System.out.println("Success - " + handle + " unregistered.");
+ }
+
private void runSetDefaultDialer() throws RemoteException {
final String packageName = nextArgRequired();
final boolean success = mTelecomService.setDefaultDialer(packageName);
@@ -124,6 +148,12 @@ public final class Telecom extends BaseCommand {
System.out.println(mTelecomService.getDefaultDialerPackage());
}
+ private PhoneAccountHandle getPhoneAccountHandleFromArgs() {
+ final ComponentName component = parseComponentName(nextArgRequired());
+ final String accountId = nextArgRequired();
+ return new PhoneAccountHandle(component, accountId);
+ }
+
private ComponentName parseComponentName(String component) {
ComponentName cn = ComponentName.unflattenFromString(component);
if (cn == null) {
diff --git a/packages/Shell/AndroidManifest.xml b/packages/Shell/AndroidManifest.xml
index fd0ba73..640fb29 100644
--- a/packages/Shell/AndroidManifest.xml
+++ b/packages/Shell/AndroidManifest.xml
@@ -25,6 +25,7 @@
<!-- Standard permissions granted to the shell. -->
<uses-permission android:name="android.permission.SEND_SMS" />
<uses-permission android:name="android.permission.CALL_PHONE" />
+ <uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.WRITE_CONTACTS" />
<uses-permission android:name="android.permission.READ_CALENDAR" />
@@ -97,6 +98,10 @@
<uses-permission android:name="android.permission.CHANGE_APP_IDLE_STATE" />
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
<uses-permission android:name="android.permission.MOUNT_FORMAT_FILESYSTEMS" />
+ <uses-permission android:name="android.permission.MODIFY_PHONE_STATE" />
+ <uses-permission android:name="android.permission.REGISTER_CALL_PROVIDER" />
+ <uses-permission android:name="android.permission.REGISTER_CONNECTION_MANAGER" />
+ <uses-permission android:name="android.permission.REGISTER_SIM_SUBSCRIPTION" />
<application android:label="@string/app_label">
<provider