有没有办法通过adb获取电话的电话号码?

我认为dumpsys是一个可能的答案,但是似乎没有任何系统服务能够跟踪电话的自身号码。

最佳答案

iphonesubinfo服务“保留跟踪”订户信息,包括电话号码。不幸的是,iphonesubinfo服务未实现dump()方法,因此dumpsys没有显示任何内容。您将不得不使用service call命令来代替IPhoneSubInfo.getLine1Number()IPhoneSubInfo.getMsisdn()
根据Android版本和运营商的不同,以下一个或两个命令会告诉您电话号码(service call命令需要root特权):

service call iphonesubinfo 4
service call iphonesubinfo 5
service call iphonesubinfo 6
service call iphonesubinfo 7
service call iphonesubinfo 8

如果要查找适合您特定设备的代码,请从Calling Android services from ADB shell帖子下载脚本并按以下方式运行它:
./get_android_service_call_numbers.sh iphonesubinfo | grep getLine1Number

更新

Android 5.0的交易代码:
service call iphonesubinfo 11 # getLine1Number()
service call iphonesubinfo 15 # getMsisdn()

Android 5.1的交易代码:
service call iphonesubinfo 13 # getLine1Number()
service call iphonesubinfo 17 # getMsisdn()

10-08 13:48