1 /* 2 * Copyright (C) 2014 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 package com.android.internal.telecom; 18 19 import android.content.ComponentName; 20 import android.content.Intent; 21 import android.telecom.ParcelableCallAnalytics; 22 import android.telecom.PhoneAccountHandle; 23 import android.net.Uri; 24 import android.os.Bundle; 25 import android.telecom.PhoneAccount; 26 27 /** 28 * Interface used to interact with Telecom. Mostly this is used by TelephonyManager for passing 29 * commands that were previously handled by ITelephony. 30 * {@hide} 31 */ 32 interface ITelecomService { 33 /** 34 * Brings the in-call screen to the foreground if there is an active call. 35 * 36 * @param showDialpad if true, make the dialpad visible initially. 37 */ showInCallScreen(boolean showDialpad, String callingPackage)38 void showInCallScreen(boolean showDialpad, String callingPackage); 39 40 /** 41 * @see TelecomServiceImpl#getDefaultOutgoingPhoneAccount 42 */ getDefaultOutgoingPhoneAccount(in String uriScheme, String callingPackage)43 PhoneAccountHandle getDefaultOutgoingPhoneAccount(in String uriScheme, String callingPackage); 44 45 /** 46 * @see TelecomServiceImpl#getUserSelectedOutgoingPhoneAccount 47 */ getUserSelectedOutgoingPhoneAccount()48 PhoneAccountHandle getUserSelectedOutgoingPhoneAccount(); 49 50 /** 51 * @see TelecomServiceImpl#setUserSelectedOutgoingPhoneAccount 52 */ setUserSelectedOutgoingPhoneAccount(in PhoneAccountHandle account)53 void setUserSelectedOutgoingPhoneAccount(in PhoneAccountHandle account); 54 55 /** 56 * @see TelecomServiceImpl#getCallCapablePhoneAccounts 57 */ getCallCapablePhoneAccounts( boolean includeDisabledAccounts, String callingPackage)58 List<PhoneAccountHandle> getCallCapablePhoneAccounts( 59 boolean includeDisabledAccounts, String callingPackage); 60 61 /** 62 * @see TelecomManager#getPhoneAccountsSupportingScheme 63 */ getPhoneAccountsSupportingScheme(in String uriScheme, String callingPackage)64 List<PhoneAccountHandle> getPhoneAccountsSupportingScheme(in String uriScheme, 65 String callingPackage); 66 67 /** 68 * @see TelecomManager#getPhoneAccountsForPackage 69 */ getPhoneAccountsForPackage(in String packageName)70 List<PhoneAccountHandle> getPhoneAccountsForPackage(in String packageName); 71 72 /** 73 * @see TelecomManager#getPhoneAccount 74 */ getPhoneAccount(in PhoneAccountHandle account)75 PhoneAccount getPhoneAccount(in PhoneAccountHandle account); 76 77 /** 78 * @see TelecomManager#getAllPhoneAccountsCount 79 */ getAllPhoneAccountsCount()80 int getAllPhoneAccountsCount(); 81 82 /** 83 * @see TelecomManager#getAllPhoneAccounts 84 */ getAllPhoneAccounts()85 List<PhoneAccount> getAllPhoneAccounts(); 86 87 /** 88 * @see TelecomManager#getAllPhoneAccountHandles 89 */ getAllPhoneAccountHandles()90 List<PhoneAccountHandle> getAllPhoneAccountHandles(); 91 92 /** 93 * @see TelecomServiceImpl#getSimCallManager 94 */ getSimCallManager()95 PhoneAccountHandle getSimCallManager(); 96 97 /** 98 * @see TelecomServiceImpl#getSimCallManagerForUser 99 */ getSimCallManagerForUser(int userId)100 PhoneAccountHandle getSimCallManagerForUser(int userId); 101 102 /** 103 * @see TelecomServiceImpl#registerPhoneAccount 104 */ registerPhoneAccount(in PhoneAccount metadata)105 void registerPhoneAccount(in PhoneAccount metadata); 106 107 /** 108 * @see TelecomServiceImpl#unregisterPhoneAccount 109 */ unregisterPhoneAccount(in PhoneAccountHandle account)110 void unregisterPhoneAccount(in PhoneAccountHandle account); 111 112 /** 113 * @see TelecomServiceImpl#clearAccounts 114 */ clearAccounts(String packageName)115 void clearAccounts(String packageName); 116 117 /** 118 * @see TelecomServiceImpl#isVoiceMailNumber 119 */ isVoiceMailNumber(in PhoneAccountHandle accountHandle, String number, String callingPackage)120 boolean isVoiceMailNumber(in PhoneAccountHandle accountHandle, String number, 121 String callingPackage); 122 123 /** 124 * @see TelecomServiceImpl#getVoiceMailNumber 125 */ getVoiceMailNumber(in PhoneAccountHandle accountHandle, String callingPackage)126 String getVoiceMailNumber(in PhoneAccountHandle accountHandle, String callingPackage); 127 128 /** 129 * @see TelecomServiceImpl#getLine1Number 130 */ getLine1Number(in PhoneAccountHandle accountHandle, String callingPackage)131 String getLine1Number(in PhoneAccountHandle accountHandle, String callingPackage); 132 133 /** 134 * @see TelecomServiceImpl#getDefaultPhoneApp 135 */ getDefaultPhoneApp()136 ComponentName getDefaultPhoneApp(); 137 138 /** 139 * @see TelecomServiceImpl#getDefaultDialerPackage 140 */ getDefaultDialerPackage()141 String getDefaultDialerPackage(); 142 143 /** 144 * @see TelecomServiceImpl#getSystemDialerPackage 145 */ getSystemDialerPackage()146 String getSystemDialerPackage(); 147 148 /** 149 * @see TelecomServiceImpl#dumpCallAnalytics 150 */ dumpCallAnalytics()151 List<ParcelableCallAnalytics> dumpCallAnalytics(); 152 153 // 154 // Internal system apis relating to call management. 155 // 156 157 /** 158 * @see TelecomServiceImpl#silenceRinger 159 */ silenceRinger(String callingPackage)160 void silenceRinger(String callingPackage); 161 162 /** 163 * @see TelecomServiceImpl#isInCall 164 */ isInCall(String callingPackage)165 boolean isInCall(String callingPackage); 166 167 /** 168 * @see TelecomServiceImpl#isRinging 169 */ isRinging(String callingPackage)170 boolean isRinging(String callingPackage); 171 172 /** 173 * @see TelecomServiceImpl#getCallState 174 */ getCallState()175 int getCallState(); 176 177 /** 178 * @see TelecomServiceImpl#endCall 179 */ endCall()180 boolean endCall(); 181 182 /** 183 * @see TelecomServiceImpl#acceptRingingCall 184 */ acceptRingingCall()185 void acceptRingingCall(); 186 187 /** 188 * @see TelecomServiceImpl#acceptRingingCallWithVideoState(int) 189 */ acceptRingingCallWithVideoState(int videoState)190 void acceptRingingCallWithVideoState(int videoState); 191 192 /** 193 * @see TelecomServiceImpl#cancelMissedCallsNotification 194 */ cancelMissedCallsNotification(String callingPackage)195 void cancelMissedCallsNotification(String callingPackage); 196 197 /** 198 * @see TelecomServiceImpl#handleMmi 199 */ handlePinMmi(String dialString, String callingPackage)200 boolean handlePinMmi(String dialString, String callingPackage); 201 202 /** 203 * @see TelecomServiceImpl#handleMmi 204 */ handlePinMmiForPhoneAccount(in PhoneAccountHandle accountHandle, String dialString, String callingPackage)205 boolean handlePinMmiForPhoneAccount(in PhoneAccountHandle accountHandle, String dialString, 206 String callingPackage); 207 208 /** 209 * @see TelecomServiceImpl#getAdnUriForPhoneAccount 210 */ getAdnUriForPhoneAccount(in PhoneAccountHandle accountHandle, String callingPackage)211 Uri getAdnUriForPhoneAccount(in PhoneAccountHandle accountHandle, String callingPackage); 212 213 /** 214 * @see TelecomServiceImpl#isTtySupported 215 */ isTtySupported(String callingPackage)216 boolean isTtySupported(String callingPackage); 217 218 /** 219 * @see TelecomServiceImpl#getCurrentTtyMode 220 */ getCurrentTtyMode(String callingPackage)221 int getCurrentTtyMode(String callingPackage); 222 223 /** 224 * @see TelecomServiceImpl#addNewIncomingCall 225 */ addNewIncomingCall(in PhoneAccountHandle phoneAccount, in Bundle extras)226 void addNewIncomingCall(in PhoneAccountHandle phoneAccount, in Bundle extras); 227 228 /** 229 * @see TelecomServiceImpl#addNewUnknownCall 230 */ addNewUnknownCall(in PhoneAccountHandle phoneAccount, in Bundle extras)231 void addNewUnknownCall(in PhoneAccountHandle phoneAccount, in Bundle extras); 232 233 /** 234 * @see TelecomServiceImpl#placeCall 235 */ placeCall(in Uri handle, in Bundle extras, String callingPackage)236 void placeCall(in Uri handle, in Bundle extras, String callingPackage); 237 238 /** 239 * @see TelecomServiceImpl#enablePhoneAccount 240 */ enablePhoneAccount(in PhoneAccountHandle accountHandle, boolean isEnabled)241 boolean enablePhoneAccount(in PhoneAccountHandle accountHandle, boolean isEnabled); 242 243 /** 244 * @see TelecomServiceImpl#setDefaultDialer 245 */ setDefaultDialer(in String packageName)246 boolean setDefaultDialer(in String packageName); 247 248 /** 249 * @see TelecomServiceImpl#createManageBlockedNumbersIntent 250 **/ createManageBlockedNumbersIntent()251 Intent createManageBlockedNumbersIntent(); 252 } 253