2013-09-26 3 views
0

У меня есть форма, в которой я получаю информацию о пользователе, в которой у меня есть поле, называемое номером телефона, и Edit Text, чтобы поместить номер телефона.номер телефона в EditText

У меня возникло ощущение, что было бы здорово, если бы этот текст автоматически заполнился по номеру телефона пользователя. есть ли какой-либо метод, который автоматически заполняет номер телефона пользователя национальным кодом?

ниже код был отправлен на stackoverflow, я думаю, он может работать в некоторых случаях, может ли кто-нибудь мне помочь?

private String getMyPhoneNumber() { 
    TelephonyManager mTelephonyMgr; 
    mTelephonyMgr = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); 
    return mTelephonyMgr.getLine1Number(); 
} 

ответ

0

я чувствую себя, что было бы здорово, если что EditText автоматически заполняются пользователем телефона номер
для решения вышеуказанной проблемы, лучше всего использовать,

TelephonyManager tm = (TelephonyManager)getSystemService(TELEPHONY_SERVICE); 
String number = tm.getLine1Number(); 

с разрешения добавленным конечно

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

Но проблема в том, что в документации для getLine1Number() указано, что этот метод вернет null, если номер «недоступен», но он не говорит, когда число может быть недоступно.

есть ли какой-либо метод, который автоматически заполняет телефонный номер пользователя национальным кодом?
Для решения этой проблемы, к сожалению, нет прямого способа получить текущий код страны. Но поскольку коды стран никогда не меняются, приемлемо жестко кодировать таблицу поиска в вашем приложении.

<?xml version='1.0' encoding='UTF-8'?> 
<icc> 
    <AF>93</AF> 
    <AL>355</AL> 
    <DZ>213</DZ> 
    <AD>376</AD> 
    <AO>244</AO> 
    <AQ>672</AQ> 
    <AR>54</AR> 
    <AM>374</AM> 
    <AW>297</AW> 
    <AU>61</AU> 
    <AT>43</AT> 
    <AZ>994</AZ> 
    <BH>973</BH> 
    <BD>880</BD> 
    <BY>375</BY> 
    <BE>32</BE> 
    <BZ>501</BZ> 
    <BJ>229</BJ> 
    <BT>975</BT> 
    <BO>591</BO> 
    <BA>387</BA> 
    <BW>267</BW> 
    <BR>55</BR> 
    <BN>673</BN> 
    <BG>359</BG> 
    <BF>226</BF> 
    <MM>95</MM> 
    <BI>257</BI> 
    <KH>855</KH> 
    <CM>237</CM> 
    <CA>1</CA> 
    <CV>238</CV> 
    <CF>236</CF> 
    <TD>235</TD> 
    <CL>56</CL> 
    <CN>86</CN> 
    <CX>61</CX> 
    <CC>61</CC> 
    <CO>57</CO> 
    <KM>269</KM> 
    <CG>242</CG> 
    <CD>243</CD> 
    <CK>682</CK> 
    <CR>506</CR> 
    <HR>385</HR> 
    <CU>53</CU> 
    <CY>357</CY> 
    <CZ>420</CZ> 
    <DK>45</DK> 
    <DJ>253</DJ> 
    <TL>670</TL> 
    <EC>593</EC> 
    <EG>20</EG> 
    <SV>503</SV> 
    <GQ>240</GQ> 
    <ER>291</ER> 
    <EE>372</EE> 
    <ET>251</ET> 
    <FK>500</FK> 
    <FO>298</FO> 
    <FJ>679</FJ> 
    <FI>358</FI> 
    <FR>33</FR> 
    <PF>689</PF> 
    <GA>241</GA> 
    <GM>220</GM> 
    <GE>995</GE> 
    <DE>49</DE> 
    <GH>233</GH> 
    <GI>350</GI> 
    <GR>30</GR> 
    <GL>299</GL> 
    <GT>502</GT> 
    <GN>224</GN> 
    <GW>245</GW> 
    <GY>592</GY> 
    <HT>509</HT> 
    <HN>504</HN> 
    <HK>852</HK> 
    <HU>36</HU> 
    <IN>91</IN> 
    <ID>62</ID> 
    <IR>98</IR> 
    <IQ>964</IQ> 
    <IE>353</IE> 
    <IM>44</IM> 
    <IL>972</IL> 
    <IT>39</IT> 
    <CI>225</CI> 
    <JP>81</JP> 
    <JO>962</JO> 
    <KZ>7</KZ> 
    <KE>254</KE> 
    <KI>686</KI> 
    <KW>965</KW> 
    <KG>996</KG> 
    <LA>856</LA> 
    <LV>371</LV> 
    <LB>961</LB> 
    <LS>266</LS> 
    <LR>231</LR> 
    <LY>218</LY> 
    <LI>423</LI> 
    <LT>370</LT> 
    <LU>352</LU> 
    <MO>853</MO> 
    <MK>389</MK> 
    <MG>261</MG> 
    <MW>265</MW> 
    <MY>60</MY> 
    <MV>960</MV> 
    <ML>223</ML> 
    <MT>356</MT> 
    <MH>692</MH> 
    <MR>222</MR> 
    <MU>230</MU> 
    <YT>262</YT> 
    <MX>52</MX> 
    <FM>691</FM> 
    <MD>373</MD> 
    <MC>377</MC> 
    <MN>976</MN> 
    <ME>382</ME> 
    <MA>212</MA> 
    <MZ>258</MZ> 
    <NA>264</NA> 
    <NR>674</NR> 
    <NP>977</NP> 
    <NL>31</NL> 
    <AN>599</AN> 
    <NC>687</NC> 
    <NZ>64</NZ> 
    <NI>505</NI> 
    <NE>227</NE> 
    <NG>234</NG> 
    <NU>683</NU> 
    <KP>850</KP> 
    <NO>47</NO> 
    <OM>968</OM> 
    <PK>92</PK> 
    <PW>680</PW> 
    <PA>507</PA> 
    <PG>675</PG> 
    <PY>595</PY> 
    <PE>51</PE> 
    <PH>63</PH> 
    <PN>870</PN> 
    <PL>48</PL> 
    <PT>351</PT> 
    <PR>1</PR> 
    <QA>974</QA> 
    <RO>40</RO> 
    <RU>7</RU> 
    <RW>250</RW> 
    <BL>590</BL> 
    <WS>685</WS> 
    <SM>378</SM> 
    <ST>239</ST> 
    <SA>966</SA> 
    <SN>221</SN> 
    <RS>381</RS> 
    <SC>248</SC> 
    <SL>232</SL> 
    <SG>65</SG> 
    <SK>421</SK> 
    <SI>386</SI> 
    <SB>677</SB> 
    <SO>252</SO> 
    <ZA>27</ZA> 
    <KR>82</KR> 
    <ES>34</ES> 
    <LK>94</LK> 
    <SH>290</SH> 
    <PM>508</PM> 
    <SD>249</SD> 
    <SR>597</SR> 
    <SZ>268</SZ> 
    <SE>46</SE> 
    <CH>41</CH> 
    <SY>963</SY> 
    <TW>886</TW> 
    <TJ>992</TJ> 
    <TZ>255</TZ> 
    <TH>66</TH> 
    <TG>228</TG> 
    <TK>690</TK> 
    <TO>676</TO> 
    <TN>216</TN> 
    <TR>90</TR> 
    <TM>993</TM> 
    <TV>688</TV> 
    <AE>971</AE> 
    <UG>256</UG> 
    <GB>44</GB> 
    <UA>380</UA> 
    <UY>598</UY> 
    <US>1</US> 
    <UZ>998</UZ> 
    <VU>678</VU> 
    <VA>39</VA> 
    <VE>58</VE> 
    <VN>84</VN> 
    <WF>681</WF> 
    <YE>967</YE> 
    <ZM>260</ZM> 
    <ZW>263</ZW> 
</icc> 
-1

Существует много вопросов, касающихся этого.

Ваш метод основан на том, что номер телефона хранится на сим, который он редко бывает.

Самый надежный способ - позволить пользователям вводить номер самостоятельно. Хотя это не помешает, чтобы метод getLine1Number() попытался установить первый номер.

Я решил отправить свое приложение на номер с уникальным сообщением, которое при его получении завершает проверку номера входа. Затем число окончательно сохраняется в sharedPreference.

Этот метод, конечно, работает короче, если пользователь меняет сим, но если вам нужно его обработать, это можно сделать, также сохраняя IMEI, чтобы он мог быть проверен при запуске приложения.

+0

Не получить нижний предел? Мой ответ дает альтернативу, когда getLine1Number() не дает номер звонка. Я бы подумал, что это полезно. – cYrixmorten

0

Пожалуйста, установите, что PHONENUMBER в вашем EditText, как это edittext.setText (mTelephonyMgr.getLine1Number())

Смежные вопросы