Merge changes Ia219ff78,I3fd52525 into mnc-dev
* changes: Add phone permissions to Shell Add adb shell command to register/unregister phone accounts
This commit is contained in:
@@ -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) {
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user