2013-09-22 89 views
1

如何獲取設備的區號?如何在不使用位置的情況下獲取設備的區號

我有一個導入腳本,即時通訊獲取聯繫人列表中的所有電話號碼,所以我可以將其與我的數據庫中的列表進行比較並採取相應的行動。然而,我知道有些人不會爲某些聯繫人提供區號,因爲他們不需要爲當地的號碼。我需要得到那裏區號,所以我可以將它添加到數字檢查。

不是郵政5位郵編,3位區號。

我發現的所有方式都希望我能夠到達那裏,然後得到它,我不想那樣做,那太多工作得到3位數字了。

回答

1

如果聯繫人沒有區號,那麼您認爲區號是本地區號。如果它的本地區號,那麼用戶的電話號碼必須有這個區號。因此,您可以獲取用戶的電話號碼以確定本地區號,並將該區號應用於任何沒有區號的號碼。

要獲得用戶的電話號碼,你可以使用此代碼 -

TelephonyManager tm = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); 
String mPhoneNumber = tm.getLine1Number(); 

this問題複製。

然後,您可以通過查看前3位(或可能4位,如果String的長度爲11 char s)數字來提取區號。

String areaCode = mPhoneNumer.substring(0, mPhoneNumber.length()==10 ? 3 : 4); 

注意:確保你加入這行READ_PHONE_STATE權限添加到AndroidManifest.xml文件 -

<uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission> 
+0

這是偉大的,偉大的工程,無論其怎麼樣有一個電話簿平板設備。 .. theres沒有電話號碼存儲的平板電腦。因爲我在我的平板電腦上測試時遇到NULL值,並且崩潰。授予即時試圖趕上解決崩潰和if語句如果值爲null提醒他們沒有電話號碼,並要求那裏的聯繫人的地方代碼。但你相信這是另一種方式嗎? –

+1

@AaronRussell啊......讓事情變得更復雜一點。我現在沒有任何東西,但是我試着去想一些東西。我最初的預感是,這是不可能的,因爲(1)平板電腦沒有電話功能,並且(2)沒有區號可以使電話號碼模糊不清。底線 - 我不認爲除了你說的話之外還有別的方法,如果沒有電話號碼的話。 –

+0

現在我知道我的問題是如何得到它,而不使用位置服務,也許我可以包裝if語句,如果它的null嘗試並獲得位置服務?你知道我怎麼能這樣嗎?我們可以把這個方法放在一個完整的證明方式中,併發布給所有人。 –

相關問題