2011-08-17 114 views
0

在我的應用程序讀取裝置的電話號碼作爲讀電話號碼:安卓

TelephonyManager telephonyManager = (TelephonyManager) this.getSystemService(Context.TELEPHONY_SERVICE); 
// Read phone number of device owner. 
String phoneNumber = telephonyManager.getLine1Number(); 

哪裏,這將工作,直到有設備電話應用程序。

但是,當使用設備是平板電腦(某些平板電腦沒有電話應用程序),那麼phoneNumber的價值是什麼?它會爲空或空白字符串?或者它會是一個錯誤?

我無法在模擬器上檢查它,因爲SDK具有三星Galaxy選項卡和具有電話應用程序。

回答

1

這將工作,直到設備有電話應用程序。

不,它不會。這取決於SIM卡中編入的電話號碼。在某些電話上,返回null。在我的個人電話上,它返回錯誤的電話號碼。千萬不要依賴getLine1Number()

是否爲空或爲空字符串?

我有理由確定它會返回null。它不應該提高Exception

+0

那麼有沒有其他的方式來閱讀電話號碼? –

+0

@ user594955:不是我所知道的。請記住,手機至少在GSM網絡上不需要知道其電話號碼。 – CommonsWare