diff options
Diffstat (limited to 'telecomm/java')
-rw-r--r-- | telecomm/java/android/telecom/TelecomManager.java | 27 | ||||
-rw-r--r-- | telecomm/java/com/android/internal/telecom/ITelecomService.aidl | 5 |
2 files changed, 31 insertions, 1 deletions
diff --git a/telecomm/java/android/telecom/TelecomManager.java b/telecomm/java/android/telecom/TelecomManager.java index 1f5be6e..c69a17c 100644 --- a/telecomm/java/android/telecom/TelecomManager.java +++ b/telecomm/java/android/telecom/TelecomManager.java @@ -20,6 +20,7 @@ import android.content.Context; import android.os.Bundle; import android.os.RemoteException; import android.os.ServiceManager; +import android.telephony.TelephonyManager; import android.util.Log; import com.android.internal.telecom.ITelecomService; @@ -661,12 +662,36 @@ public class TelecomManager { return getTelecomService().isInCall(); } } catch (RemoteException e) { - Log.e(TAG, "RemoteException attempting to get default phone app.", e); + Log.e(TAG, "RemoteException calling isInCall().", e); } return false; } /** + * Returns one of the following constants that represents the current state of Telecom: + * + * {@link TelephonyManager#CALL_STATE_RINGING} + * {@link TelephonyManager#CALL_STATE_OFFHOOK} + * {@link TelephonyManager#CALL_STATE_IDLE} + * + * <p> + * Requires permission: {@link android.Manifest.permission#READ_PHONE_STATE} + * </p> + * @hide + */ + @SystemApi + public int getCallState() { + try { + if (isServiceConnected()) { + return getTelecomService().getCallState(); + } + } catch (RemoteException e) { + Log.d(TAG, "RemoteException calling getCallState().", e); + } + return TelephonyManager.CALL_STATE_IDLE; + } + + /** * Returns whether there currently exists is a ringing incoming-call. * * @hide diff --git a/telecomm/java/com/android/internal/telecom/ITelecomService.aidl b/telecomm/java/com/android/internal/telecom/ITelecomService.aidl index 4edce53..4875cc3 100644 --- a/telecomm/java/com/android/internal/telecom/ITelecomService.aidl +++ b/telecomm/java/com/android/internal/telecom/ITelecomService.aidl @@ -139,6 +139,11 @@ interface ITelecomService { boolean isRinging(); /** + * @see TelecomServiceImpl#getCallState + */ + int getCallState(); + + /** * @see TelecomServiceImpl#endCall */ boolean endCall(); |