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()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 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()100 PhoneAccountHandle getSimCallManager(); 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 */ getCallState()185 int getCallState(); 186 187 /** 188 * @see TelecomServiceImpl#endCall 189 */ endCall()190 boolean endCall(); 191 192 /** 193 * @see TelecomServiceImpl#acceptRingingCall 194 */ acceptRingingCall(String callingPackage)195 void acceptRingingCall(String callingPackage); 196 197 /** 198 * @see TelecomServiceImpl#acceptRingingCallWithVideoState(int) 199 */ acceptRingingCallWithVideoState(String callingPackage, int videoState)200 void acceptRingingCallWithVideoState(String callingPackage, int videoState); 201 202 /** 203 * @see TelecomServiceImpl#cancelMissedCallsNotification 204 */ cancelMissedCallsNotification(String callingPackage)205 void cancelMissedCallsNotification(String callingPackage); 206 207 /** 208 * @see TelecomServiceImpl#handleMmi 209 */ handlePinMmi(String dialString, String callingPackage)210 boolean handlePinMmi(String dialString, String callingPackage); 211 212 /** 213 * @see TelecomServiceImpl#handleMmi 214 */ handlePinMmiForPhoneAccount(in PhoneAccountHandle accountHandle, String dialString, String callingPackage)215 boolean handlePinMmiForPhoneAccount(in PhoneAccountHandle accountHandle, String dialString, 216 String callingPackage); 217 218 /** 219 * @see TelecomServiceImpl#getAdnUriForPhoneAccount 220 */ getAdnUriForPhoneAccount(in PhoneAccountHandle accountHandle, String callingPackage)221 Uri getAdnUriForPhoneAccount(in PhoneAccountHandle accountHandle, String callingPackage); 222 223 /** 224 * @see TelecomServiceImpl#isTtySupported 225 */ isTtySupported(String callingPackage)226 boolean isTtySupported(String callingPackage); 227 228 /** 229 * @see TelecomServiceImpl#getCurrentTtyMode 230 */ getCurrentTtyMode(String callingPackage)231 int getCurrentTtyMode(String callingPackage); 232 233 /** 234 * @see TelecomServiceImpl#addNewIncomingCall 235 */ addNewIncomingCall(in PhoneAccountHandle phoneAccount, in Bundle extras)236 void addNewIncomingCall(in PhoneAccountHandle phoneAccount, in Bundle extras); 237 238 /** 239 * @see TelecomServiceImpl#addNewUnknownCall 240 */ addNewUnknownCall(in PhoneAccountHandle phoneAccount, in Bundle extras)241 void addNewUnknownCall(in PhoneAccountHandle phoneAccount, in Bundle extras); 242 243 /** 244 * @see TelecomServiceImpl#placeCall 245 */ placeCall(in Uri handle, in Bundle extras, String callingPackage)246 void placeCall(in Uri handle, in Bundle extras, String callingPackage); 247 248 /** 249 * @see TelecomServiceImpl#enablePhoneAccount 250 */ enablePhoneAccount(in PhoneAccountHandle accountHandle, boolean isEnabled)251 boolean enablePhoneAccount(in PhoneAccountHandle accountHandle, boolean isEnabled); 252 253 /** 254 * @see TelecomServiceImpl#setDefaultDialer 255 */ setDefaultDialer(in String packageName)256 boolean setDefaultDialer(in String packageName); 257 258 /** 259 * @see TelecomServiceImpl#createManageBlockedNumbersIntent 260 **/ createManageBlockedNumbersIntent()261 Intent createManageBlockedNumbersIntent(); 262 263 /** 264 * @see TelecomServiceImpl#isIncomingCallPermitted 265 */ isIncomingCallPermitted(in PhoneAccountHandle phoneAccountHandle)266 boolean isIncomingCallPermitted(in PhoneAccountHandle phoneAccountHandle); 267 268 /** 269 * @see TelecomServiceImpl#isOutgoingCallPermitted 270 */ isOutgoingCallPermitted(in PhoneAccountHandle phoneAccountHandle)271 boolean isOutgoingCallPermitted(in PhoneAccountHandle phoneAccountHandle); 272 273 /** 274 * @see TelecomServiceImpl#waitOnHandler 275 */ waitOnHandlers()276 void waitOnHandlers(); 277 } 278