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.TelecomAnalytics; 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(String callingPackage)48 PhoneAccountHandle getUserSelectedOutgoingPhoneAccount(String callingPackage); 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 TelecomServiceImpl#getSelfManagedPhoneAccounts 63 */ getSelfManagedPhoneAccounts(String callingPackage)64 List<PhoneAccountHandle> getSelfManagedPhoneAccounts(String callingPackage); 65 66 /** 67 * @see TelecomManager#getPhoneAccountsSupportingScheme 68 */ getPhoneAccountsSupportingScheme(in String uriScheme, String callingPackage)69 List<PhoneAccountHandle> getPhoneAccountsSupportingScheme(in String uriScheme, 70 String callingPackage); 71 72 /** 73 * @see TelecomManager#getPhoneAccountsForPackage 74 */ getPhoneAccountsForPackage(in String packageName)75 List<PhoneAccountHandle> getPhoneAccountsForPackage(in String packageName); 76 77 /** 78 * @see TelecomManager#getPhoneAccount 79 */ getPhoneAccount(in PhoneAccountHandle account)80 PhoneAccount getPhoneAccount(in PhoneAccountHandle account); 81 82 /** 83 * @see TelecomManager#getAllPhoneAccountsCount 84 */ getAllPhoneAccountsCount()85 int getAllPhoneAccountsCount(); 86 87 /** 88 * @see TelecomManager#getAllPhoneAccounts 89 */ getAllPhoneAccounts()90 List<PhoneAccount> getAllPhoneAccounts(); 91 92 /** 93 * @see TelecomManager#getAllPhoneAccountHandles 94 */ getAllPhoneAccountHandles()95 List<PhoneAccountHandle> getAllPhoneAccountHandles(); 96 97 /** 98 * @see TelecomServiceImpl#getSimCallManager 99 */ getSimCallManager(int subId)100 PhoneAccountHandle getSimCallManager(int subId); 101 102 /** 103 * @see TelecomServiceImpl#getSimCallManagerForUser 104 */ getSimCallManagerForUser(int userId)105 PhoneAccountHandle getSimCallManagerForUser(int userId); 106 107 /** 108 * @see TelecomServiceImpl#registerPhoneAccount 109 */ registerPhoneAccount(in PhoneAccount metadata)110 void registerPhoneAccount(in PhoneAccount metadata); 111 112 /** 113 * @see TelecomServiceImpl#unregisterPhoneAccount 114 */ unregisterPhoneAccount(in PhoneAccountHandle account)115 void unregisterPhoneAccount(in PhoneAccountHandle account); 116 117 /** 118 * @see TelecomServiceImpl#clearAccounts 119 */ clearAccounts(String packageName)120 void clearAccounts(String packageName); 121 122 /** 123 * @see TelecomServiceImpl#isVoiceMailNumber 124 */ isVoiceMailNumber(in PhoneAccountHandle accountHandle, String number, String callingPackage)125 boolean isVoiceMailNumber(in PhoneAccountHandle accountHandle, String number, 126 String callingPackage); 127 128 /** 129 * @see TelecomServiceImpl#getVoiceMailNumber 130 */ getVoiceMailNumber(in PhoneAccountHandle accountHandle, String callingPackage)131 String getVoiceMailNumber(in PhoneAccountHandle accountHandle, String callingPackage); 132 133 /** 134 * @see TelecomServiceImpl#getLine1Number 135 */ getLine1Number(in PhoneAccountHandle accountHandle, String callingPackage)136 String getLine1Number(in PhoneAccountHandle accountHandle, String callingPackage); 137 138 /** 139 * @see TelecomServiceImpl#getDefaultPhoneApp 140 */ getDefaultPhoneApp()141 ComponentName getDefaultPhoneApp(); 142 143 /** 144 * @see TelecomServiceImpl#getDefaultDialerPackage 145 */ getDefaultDialerPackage()146 String getDefaultDialerPackage(); 147 148 /** 149 * @see TelecomServiceImpl#getSystemDialerPackage 150 */ getSystemDialerPackage()151 String getSystemDialerPackage(); 152 153 /** 154 * @see TelecomServiceImpl#dumpCallAnalytics 155 */ dumpCallAnalytics()156 TelecomAnalytics dumpCallAnalytics(); 157 158 // 159 // Internal system apis relating to call management. 160 // 161 162 /** 163 * @see TelecomServiceImpl#silenceRinger 164 */ silenceRinger(String callingPackage)165 void silenceRinger(String callingPackage); 166 167 /** 168 * @see TelecomServiceImpl#isInCall 169 */ isInCall(String callingPackage)170 boolean isInCall(String callingPackage); 171 172 /** 173 * @see TelecomServiceImpl#isInManagedCall 174 */ isInManagedCall(String callingPackage)175 boolean isInManagedCall(String callingPackage); 176 177 /** 178 * @see TelecomServiceImpl#isRinging 179 */ isRinging(String callingPackage)180 boolean isRinging(String callingPackage); 181 182 /** 183 * @see TelecomServiceImpl#getCallState 184 */ 185 @UnsupportedAppUsage getCallState()186 int getCallState(); 187 188 /** 189 * @see TelecomServiceImpl#endCall 190 */ endCall(String callingPackage)191 boolean endCall(String callingPackage); 192 193 /** 194 * @see TelecomServiceImpl#acceptRingingCall 195 */ acceptRingingCall(String callingPackage)196 void acceptRingingCall(String callingPackage); 197 198 /** 199 * @see TelecomServiceImpl#acceptRingingCallWithVideoState(int) 200 */ acceptRingingCallWithVideoState(String callingPackage, int videoState)201 void acceptRingingCallWithVideoState(String callingPackage, int videoState); 202 203 /** 204 * @see TelecomServiceImpl#cancelMissedCallsNotification 205 */ cancelMissedCallsNotification(String callingPackage)206 void cancelMissedCallsNotification(String callingPackage); 207 208 /** 209 * @see TelecomServiceImpl#handleMmi 210 */ handlePinMmi(String dialString, String callingPackage)211 boolean handlePinMmi(String dialString, String callingPackage); 212 213 /** 214 * @see TelecomServiceImpl#handleMmi 215 */ handlePinMmiForPhoneAccount(in PhoneAccountHandle accountHandle, String dialString, String callingPackage)216 boolean handlePinMmiForPhoneAccount(in PhoneAccountHandle accountHandle, String dialString, 217 String callingPackage); 218 219 /** 220 * @see TelecomServiceImpl#getAdnUriForPhoneAccount 221 */ getAdnUriForPhoneAccount(in PhoneAccountHandle accountHandle, String callingPackage)222 Uri getAdnUriForPhoneAccount(in PhoneAccountHandle accountHandle, String callingPackage); 223 224 /** 225 * @see TelecomServiceImpl#isTtySupported 226 */ isTtySupported(String callingPackage)227 boolean isTtySupported(String callingPackage); 228 229 /** 230 * @see TelecomServiceImpl#getCurrentTtyMode 231 */ getCurrentTtyMode(String callingPackage)232 int getCurrentTtyMode(String callingPackage); 233 234 /** 235 * @see TelecomServiceImpl#addNewIncomingCall 236 */ addNewIncomingCall(in PhoneAccountHandle phoneAccount, in Bundle extras)237 void addNewIncomingCall(in PhoneAccountHandle phoneAccount, in Bundle extras); 238 239 /** 240 * @see TelecomServiceImpl#addNewUnknownCall 241 */ addNewUnknownCall(in PhoneAccountHandle phoneAccount, in Bundle extras)242 void addNewUnknownCall(in PhoneAccountHandle phoneAccount, in Bundle extras); 243 244 /** 245 * @see TelecomServiceImpl#placeCall 246 */ placeCall(in Uri handle, in Bundle extras, String callingPackage)247 void placeCall(in Uri handle, in Bundle extras, String callingPackage); 248 249 /** 250 * @see TelecomServiceImpl#enablePhoneAccount 251 */ enablePhoneAccount(in PhoneAccountHandle accountHandle, boolean isEnabled)252 boolean enablePhoneAccount(in PhoneAccountHandle accountHandle, boolean isEnabled); 253 254 /** 255 * @see TelecomServiceImpl#setDefaultDialer 256 */ setDefaultDialer(in String packageName)257 boolean setDefaultDialer(in String packageName); 258 259 /** 260 * @see TelecomServiceImpl#createManageBlockedNumbersIntent 261 **/ createManageBlockedNumbersIntent()262 Intent createManageBlockedNumbersIntent(); 263 264 /** 265 * @see TelecomServiceImpl#isIncomingCallPermitted 266 */ isIncomingCallPermitted(in PhoneAccountHandle phoneAccountHandle)267 boolean isIncomingCallPermitted(in PhoneAccountHandle phoneAccountHandle); 268 269 /** 270 * @see TelecomServiceImpl#isOutgoingCallPermitted 271 */ isOutgoingCallPermitted(in PhoneAccountHandle phoneAccountHandle)272 boolean isOutgoingCallPermitted(in PhoneAccountHandle phoneAccountHandle); 273 274 /** 275 * @see TelecomServiceImpl#waitOnHandler 276 */ waitOnHandlers()277 void waitOnHandlers(); 278 279 /** 280 * @see TelecomServiceImpl#acceptHandover 281 */ acceptHandover(in Uri srcAddr, int videoState, in PhoneAccountHandle destAcct)282 void acceptHandover(in Uri srcAddr, int videoState, in PhoneAccountHandle destAcct); 283 284 /** 285 * @see TelecomServiceImpl#isInEmergencyCall 286 */ isInEmergencyCall()287 boolean isInEmergencyCall(); 288 289 /** 290 * @see TelecomServiceImpl#handleCallIntent 291 */ handleCallIntent(in Intent intent)292 void handleCallIntent(in Intent intent); 293 setTestDefaultCallRedirectionApp(String packageName)294 void setTestDefaultCallRedirectionApp(String packageName); 295 setTestPhoneAcctSuggestionComponent(String flattenedComponentName)296 void setTestPhoneAcctSuggestionComponent(String flattenedComponentName); 297 setTestDefaultCallScreeningApp(String packageName)298 void setTestDefaultCallScreeningApp(String packageName); 299 addOrRemoveTestCallCompanionApp(String packageName, boolean isAdded)300 void addOrRemoveTestCallCompanionApp(String packageName, boolean isAdded); 301 setTestAutoModeApp(String packageName)302 void setTestAutoModeApp(String packageName); 303 304 /** 305 * @see TelecomServiceImpl#setTestDefaultDialer 306 */ setTestDefaultDialer(in String packageName)307 void setTestDefaultDialer(in String packageName); 308 309 } 310