2010-08-04 54 views
0

有没有办法在移动应用程序中检索用户的电话号码?我正在寻找建立某种类型的地址簿实用程序,建立电话号码,让他们拨打电话号码等使用他们的当前电话号码。有没有办法检索这些信息?有没有办法在移动应用程序中检索用户的电话号码?

我发现了一些方法来检索它在黑莓和Android从SIM卡,但显然在SIM卡的价值并不能保证它的实际数量。

回答

3

您可以使用the TelephonyManager做到这一点:

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

documentation for getLine1Number()说,此方法将返回null如果数字是“不可用”,但它并没有说当数可能不可用。

你需要通过添加以下到您的清单,让您的应用程序permission to make this query:(你不应该使用TelephonyManager.getDefault()得到TelephonyManagerthat is a private undocumented API call and may change in future

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

+0

如果启用了飞行模式或SIM卡被锁定,该号码可能不可用。此外,并非所有SIM卡都有这些信息,如果您已经移除了您的号码,则不一定准确。 – 2010-08-05 19:49:14

2

黑莓你可以使用

Phone.getDevicePhoneNumber(false) 

根据javadoc的,这个方法可以返回null如果没有电话NU mber当前可用

有一个常规解决方法可以获取用户的手机号码。

  1. 让用户输入他的手机号码。假设他输入123456789
  2. 在任何端口(而不是0)上发送短信给此号码。 例如发送短信到123456789端口5001
  3. 黑莓
    启动后台消息监听器线程
    为诺基亚,三星等
    注册端口5001
  4. 当动态推送注册你会收到类似的消息。 发件人号码=收件人号码=用户给他的号码。
  5. 用户号码已验证。
+0

不错的验证方法! – funkybro 2010-08-05 07:46:34

+0

你能解释一下你的意思吗?通过发送短信到一个端口上的号码?你的意思是实际发送短信?这不会为用户花钱吗? – erotsppa 2010-08-05 14:45:31

+0

是的我的意思是实际上发送短信,但它将只是一次验证费用。 – Vivart 2010-08-05 16:42:56

相关问题