am 823f85c5: am 13d6e4b3: Merge changes Ia219ff78,I3fd52525 into mnc-dev

* commit '823f85c51284b9fe5098688746e48b1efd13a3e5':
  Add phone permissions to Shell
  Add adb shell command to register/unregister phone accounts
This commit is contained in:
Yorke Lee
2015-06-04 19:22:41 +00:00
committed by Android Git Automerger
2 changed files with 44 additions and 9 deletions

View File

@@ -20,6 +20,7 @@ import android.content.ComponentName;
import android.content.Context; import android.content.Context;
import android.os.RemoteException; import android.os.RemoteException;
import android.os.ServiceManager; import android.os.ServiceManager;
import android.telecom.PhoneAccount;
import android.telecom.PhoneAccountHandle; import android.telecom.PhoneAccountHandle;
import android.text.TextUtils; import android.text.TextUtils;
@@ -39,8 +40,10 @@ public final class Telecom extends BaseCommand {
(new Telecom()).run(args); (new Telecom()).run(args);
} }
private static final String COMMAND_SET_PHONE_ACOUNT_ENABLED = "set-phone-account-enabled"; private static final String COMMAND_SET_PHONE_ACCOUNT_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_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_SET_DEFAULT_DIALER = "set-default-dialer";
private static final String COMMAND_GET_DEFAULT_DIALER = "get-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 [subcommand] [options]\n" +
"usage: telecom set-phone-account-enabled <COMPONENT> <ID>\n" + "usage: telecom set-phone-account-enabled <COMPONENT> <ID>\n" +
"usage: telecom set-phone-account-disabled <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 set-default-dialer <PACKAGE>\n" +
"usage: telecom get-default-dialer <PACKAGE>\n" + "usage: telecom get-default-dialer <PACKAGE>\n" +
"\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" + "telecom set-phone-account-disabled: Disables the given phone account, if it \n" +
" has already been registered with telecom.\n" + " has already been registered with telecom.\n" +
"\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" + "\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(); String command = nextArgRequired();
switch (command) { switch (command) {
case COMMAND_SET_PHONE_ACOUNT_ENABLED: case COMMAND_SET_PHONE_ACCOUNT_ENABLED:
runSetPhoneAccountEnabled(true); runSetPhoneAccountEnabled(true);
break; break;
case COMMAND_SET_PHONE_ACOUNT_DISABLED: case COMMAND_SET_PHONE_ACCOUNT_DISABLED:
runSetPhoneAccountEnabled(false); runSetPhoneAccountEnabled(false);
break; break;
case COMMAND_REGISTER_PHONE_ACCOUNT:
runRegisterPhoneAccount();
break;
case COMMAND_UNREGISTER_PHONE_ACCOUNT:
runUnregisterPhoneAccount();
break;
case COMMAND_SET_DEFAULT_DIALER: case COMMAND_SET_DEFAULT_DIALER:
runSetDefaultDialer(); runSetDefaultDialer();
break; break;
@@ -98,9 +109,7 @@ public final class Telecom extends BaseCommand {
} }
private void runSetPhoneAccountEnabled(boolean enabled) throws RemoteException { private void runSetPhoneAccountEnabled(boolean enabled) throws RemoteException {
final ComponentName component = parseComponentName(nextArgRequired()); final PhoneAccountHandle handle = getPhoneAccountHandleFromArgs();
final String accountId = nextArgRequired();
final PhoneAccountHandle handle = new PhoneAccountHandle(component, accountId);
final boolean success = mTelecomService.enablePhoneAccount(handle, enabled); final boolean success = mTelecomService.enablePhoneAccount(handle, enabled);
if (success) { if (success) {
System.out.println("Success - " + handle + (enabled ? " enabled." : " disabled.")); 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 { private void runSetDefaultDialer() throws RemoteException {
final String packageName = nextArgRequired(); final String packageName = nextArgRequired();
final boolean success = mTelecomService.setDefaultDialer(packageName); final boolean success = mTelecomService.setDefaultDialer(packageName);
@@ -124,6 +148,12 @@ public final class Telecom extends BaseCommand {
System.out.println(mTelecomService.getDefaultDialerPackage()); 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) { private ComponentName parseComponentName(String component) {
ComponentName cn = ComponentName.unflattenFromString(component); ComponentName cn = ComponentName.unflattenFromString(component);
if (cn == null) { if (cn == null) {

View File

@@ -25,6 +25,7 @@
<!-- Standard permissions granted to the shell. --> <!-- Standard permissions granted to the shell. -->
<uses-permission android:name="android.permission.SEND_SMS" /> <uses-permission android:name="android.permission.SEND_SMS" />
<uses-permission android:name="android.permission.CALL_PHONE" /> <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.READ_CONTACTS" />
<uses-permission android:name="android.permission.WRITE_CONTACTS" /> <uses-permission android:name="android.permission.WRITE_CONTACTS" />
<uses-permission android:name="android.permission.READ_CALENDAR" /> <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.CHANGE_APP_IDLE_STATE" />
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" /> <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
<uses-permission android:name="android.permission.MOUNT_FORMAT_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"> <application android:label="@string/app_label">
<provider <provider