Hoe kan ik programmatisch het telefoonnummer krijgen van het apparaat waarop mijn android app draait?
Code:
TelephonyManager tMgr = (TelephonyManager)mAppContext.getSystemService(Context.TELEPHONY_SERVICE);
String mPhoneNumber = tMgr.getLine1Number();
Vereiste Toestemming:
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
Volgens de zeer upvoted commentaren, zijn er een paar caveats om bewust van te zijn. Dit kan null
of ""
of zelfs "???????"
teruggeven, en het kan een oud telefoonnummer teruggeven dat niet langer geldig is. Als je iets wilt dat het apparaat uniek identificeert, moet je getDeviceId()
gebruiken.
private String getMyPhoneNumber(){
TelephonyManager mTelephonyMgr;
mTelephonyMgr = (TelephonyManager)
getSystemService(Context.TELEPHONY_SERVICE);
return mTelephonyMgr.getLine1Number();
}
private String getMy10DigitPhoneNumber(){
String s = getMyPhoneNumber();
return s != null && s.length() > 2 ? s.substring(2) : null;
}
Code overgenomen van http://www.androidsnippets.com/get-my-phone-number
Hoewel het mogelijk is om meerdere voicemail accounts te hebben, als je vanaf je eigen nummer belt, routeren carriers je naar de voicemail. Dus, TelephonyManager.getVoiceMailNumber()
of TelephonyManager.getCompleteVoiceMailNumber()
, afhankelijk van de smaak die je nodig hebt.
Ik hoop dat dit helpt.