diff options
author | Yorke Lee <yorkelee@google.com> | 2014-09-12 17:58:48 -0700 |
---|---|---|
committer | Yorke Lee <yorkelee@google.com> | 2014-09-14 09:54:23 -0700 |
commit | 2ae312e30652a4d0019b17825b58d558c4483a58 (patch) | |
tree | 7fd8660d59d945ab1fa0fdf5e73503f43f460b2e /telecomm | |
parent | c68f27625bfd18d945ab214983ae05206b6f3bfa (diff) | |
download | frameworks_base-2ae312e30652a4d0019b17825b58d558c4483a58.zip frameworks_base-2ae312e30652a4d0019b17825b58d558c4483a58.tar.gz frameworks_base-2ae312e30652a4d0019b17825b58d558c4483a58.tar.bz2 |
Pipe TelephonyManager.getCallState through TelecommManager
* Add TelecommManager.getCallState (hidden API)
* Make TelephonyManager.getCallState call through to
TelecommManager, to be consistent with
TelephonyManager.ACTION_PHONE_STATE_CHANGED broadcasts for
overall call state. Telephony continues to manage call states for
individual subscriptions.
Bug: 17378767
Change-Id: Ia5e8b21df801ed3af4f6e14c110a72c92f077f88
Diffstat (limited to 'telecomm')
-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(); |