2012-06-06 36 views
-1

我正在爲Android(2.1+)編寫應用程序,我想使用當前手機的電話號碼。大量的谷歌搜索給我帶來了以下:我可以檢索當前的電話號碼嗎?

String number=(TelephonyManager)getApplicationContext().getSystemService(Context.TELEPHONY_SERVICE).getLine1Number(); 

隨着權限:READ_PHONE_STATE。

但是我的問題是它返回null。在搜索過程中,我注意到這個問題之前已經提過很多次了,而且幾乎所有這些問題都有人說這個數字並不總是可用的。

在測試時,我發現在我自己的手機上,它給了我空。但另一個應用程序(例如,WhatsApp)能夠識別我的電話號碼)。

那麼我想知道他們是怎麼做到的?

回答

0

那麼,我想出了另一種方法來檢索電話號碼(在我的情況下,這絕對是必須的)。

  1. 該應用必須連接到服務器。
  2. 服務器爲應用程序提供了唯一的ID和電話號碼。
  3. 該應用程序發送文本消息到具有唯一ID的電話號碼。
  4. 服務器(我提到了一個短信網關應該允許你解釋短信?)將會看到發送短信的號碼和屬於該應用的ID。這存儲在數據庫中。
  5. 現在您可以使用標識符檢索號碼了。

這就是基本的想法。

3

您可以檢查此教程How to Get Own Mobile Number Programmatically

請閱讀我寫了下面的教程有

我讀過的信息,至今有些人對輸出的不同 行爲衝突。有報告稱某些SIM導致此 方法返回空值。

因爲沒有保證的解決方案來解決這個問題,因爲手機 號碼沒有物理存儲在所有SIM卡上,或從 廣播到手機。在一些需要物理地址驗證的國家 中尤其如此,其中編號分配 僅在之後發生。

+1

我同意w/this answer,爲什麼不在用戶找不到時詢問用戶號碼? –

相關問題