2013-10-05 203 views

回答

7

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 

UPDATE

爲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() 
+1

真棒。這適用於我的設備。不幸的是,結果是醜陋的,需要一些沉重的解析,但它的工作原理! –

+0

如果沒有生根電話,似乎不起作用。在所有情況下,我收到一條錯誤消息。 – MarioVilas

+0

在當前的API(19)中,'iphonesubinfo'確實實現了一個'dump()'方法。然而,它僅報告電話類型(例如,GSM)和設備ID(例如,IMEI),而不是電話號碼。如果您對其中一個感興趣,可以幫助您,否則,請繼續使用上述內容。 –