Telecom指令源码
来源:互联网 发布:阿里云服务器别名解析 编辑:程序博客网 时间:2024/05/16 19:51
public final class Telecom extends BaseCommand { /** * Command-line entry point. * * @param args The command-line arguments */ public static void main(String[] args) { (new Telecom()).run(args); } 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_REGISTER_SIM_PHONE_ACCOUNT = "register-sim-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"; private static final String COMMAND_GET_SYSTEM_DIALER = "get-system-dialer"; private ComponentName mComponent; private String mAccountId; private ITelecomService mTelecomService; @Override public void onShowUsage(PrintStream out) { out.println( "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 register-sim-phone-account <COMPONENT> <ID> <LABEL> <ADDRESS>\n" + "usage: telecom unregister-phone-account <COMPONENT> <ID>\n" + "usage: telecom set-default-dialer <PACKAGE>\n" + "usage: telecom get-default-dialer\n" + "usage: telecom get-system-dialer\n" + "\n" + "telecom set-phone-account-enabled: Enables the given phone account, if it has \n" + " already been registered with Telecom.\n" + "\n" + "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" + "\n" + "telecom get-default-dialer: Displays the current default dialer. \n" + "\n" + "telecom get-system-dialer: Displays the current system dialer. \n" ); } @Override public void onRun() throws Exception { mTelecomService = ITelecomService.Stub.asInterface( ServiceManager.getService(Context.TELECOM_SERVICE)); if (mTelecomService == null) { showError("Error: Could not access the Telecom Manager. Is the system running?"); return; } String command = nextArgRequired(); switch (command) { case COMMAND_SET_PHONE_ACCOUNT_ENABLED: runSetPhoneAccountEnabled(true); break; case COMMAND_SET_PHONE_ACCOUNT_DISABLED: runSetPhoneAccountEnabled(false); break; case COMMAND_REGISTER_PHONE_ACCOUNT: runRegisterPhoneAccount(); break; case COMMAND_REGISTER_SIM_PHONE_ACCOUNT: runRegisterSimPhoneAccount(); break; case COMMAND_UNREGISTER_PHONE_ACCOUNT: runUnregisterPhoneAccount(); break; case COMMAND_SET_DEFAULT_DIALER: runSetDefaultDialer(); break; case COMMAND_GET_DEFAULT_DIALER: runGetDefaultDialer(); break; case COMMAND_GET_SYSTEM_DIALER: runGetSystemDialer(); break; default: throw new IllegalArgumentException ("unknown command '" + command + "'"); } } private void runSetPhoneAccountEnabled(boolean enabled) throws RemoteException { final PhoneAccountHandle handle = getPhoneAccountHandleFromArgs(); final boolean success = mTelecomService.enablePhoneAccount(handle, enabled); if (success) { System.out.println("Success - " + handle + (enabled ? " enabled." : " disabled.")); } else { System.out.println("Error - is " + handle + " a valid PhoneAccount?"); } } 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 runRegisterSimPhoneAccount() throws RemoteException { final PhoneAccountHandle handle = getPhoneAccountHandleFromArgs(); final String label = nextArgRequired(); final String address = nextArgRequired(); PhoneAccount account = PhoneAccount.builder( handle, label) .setAddress(Uri.parse(address)) .setSubscriptionAddress(Uri.parse(address)) .setCapabilities(PhoneAccount.CAPABILITY_CALL_PROVIDER | PhoneAccount.CAPABILITY_SIM_SUBSCRIPTION) .setShortDescription(label) .addSupportedUriScheme(PhoneAccount.SCHEME_TEL) .addSupportedUriScheme(PhoneAccount.SCHEME_VOICEMAIL) .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); if (success) { System.out.println("Success - " + packageName + " set as default dialer."); } else { System.out.println("Error - " + packageName + " is not an installed Dialer app, \n" + " or is already the default dialer."); } } private void runGetDefaultDialer() throws RemoteException { System.out.println(mTelecomService.getDefaultDialerPackage()); } private void runGetSystemDialer() throws RemoteException { System.out.println(mTelecomService.getSystemDialerPackage()); } 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) { throw new IllegalArgumentException ("Invalid component " + component); } return cn; }}
0 0
- Telecom指令源码
- [Telecom] Telecom相关收藏
- telecom dict
- Telecom服务
- The Great Telecom Meltdown
- Telecom for Dummies
- Telecom for Dummies
- China Telecom SMS(SGIP)
- UVa145 Gondwanaland Telecom
- UVa 145 - Gondwanaland Telecom
- Telecom - 002 - CallsManager
- Wm指令源码
- java源码编译指令
- POJ 1215 Gondwanaland Telecom 笔记
- Android 源码开发指令解析
- lua源码阅读(7)-指令
- http://www.huihoo.com/telecom/sip_rtp_stack.html
- Linux Gains Momentum in Telecom @ JDJ
- Android RecyclerView加载时大图卡顿
- Flume-ng源码解析之Source组件
- 开源alisql压测批处理性能
- Android UI的有关使用
- Android Studio 升级2.3以后无法启动App的解决方案
- Telecom指令源码
- mmap
- Mac安装homebrew
- 数据结构(单向链表)
- Java学习--day1
- storm事务拓扑的理解(关于批处理word count)
- 【BZOJ2064】分裂(状压dp+奇技淫巧)
- 用javascript实现页面某个节点的拖拽
- sublime快捷键大全