Checking the status of a phone call remotely

感情迁移 提交于 2019-11-29 08:30:53
diaBlo35

adb shell dumpsys telephony.registry | grep mCallState, will return:

  • 0 indicates idle,
  • 1 = ringing and
  • 2 = active call
Phuong Nguyen

Figuring out if the call is still in progress is pretty straight forward. You can either:

Figuring out if the number called is currently busy is a totally different scope since you now have to deal with network specific implementation (cdma is wildly different than gsm). On CDMA it is almost impossible to figure it out.

To call TelephonyManager.getCallState() from adb shell use:

adb shell service call phone 30

For proper parsing of the service call command output on the device side and without external dependencies see my answer here

Also read Calling Android services from ADB shell for more details.

The way you find those numbers is by first identifying your AOS version and then go to GrepCode and go to your version. Then follow the links to: /com.android.internal.telephony.ITelephony (*.java) and search the code for CALL_TRANSACTION.

I just found my own answer. Using "dumpsys telephony.registry" gives me every information I need. It contains the variable "mCallState" which is just what I need.

Update: ok not 100% what I need, for some reason the callstate does not change when a connection is established. If someone has more ideas I'd love to know.

Update 2: Apparently this is a security measurement in Android, you can not get the current call status during the call, you only get to know that the user is making one but not if there is already an active connection present or still dialing.

Run adb logcat|grep -i currentCallState

You will get the logs:

D/PhoneUtils( 1242): setAudioMode() currentCallState : DIALING

D/PhoneUtils( 1242): setAudioMode() currentCallState : DIALING

D/PhoneUtils( 1242): setAudioMode() currentCallState : DIALING

D/PhoneUtils( 1242): setAudioMode() currentCallState : DIALING

D/PhoneUtils( 1242): setAudioMode() currentCallState : ALERTING

D/PhoneUtils( 1242): setAudioMode() currentCallState : ACTIVE

D/PhoneUtils( 1242): setAudioMode() currentCallState : DISCONNECTING

D/PhoneUtils( 1242): setAudioMode() currentCallState : IDLE

DIALING - Still dialing ALERTING - Ringing DISCONNECTING - Clicked Disconnect IDLE - Back to normal state

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!