【问题标题】:How to get cell phone number in android?如何在android中获取手机号码?
【发布时间】:2016-03-05 05:53:49
【问题描述】:

如何在android中获取手机号码? 这是代码。但它不起作用

TelephonyManager tm = (TelephonyManager)this.getSystemService(this.TELEPHONY_SERVICE);
String mobileno = tm.getLine1Number();

谁能帮我解决这个问题。

【问题讨论】:

标签: android telephonymanager


【解决方案1】:

您可以使用这些代码行从您的电话联系人选择器中获取手机号码。

try {
Intent i = new     Intent(Intent.ACTION_PICK,ContactsContract.CommonDataKinds.Phone.CONTENT_URI);
startActivityForResult(i, PICK_CONTACT);
Toast.LENGTH_SHORT).show();
} catch (Exception e) {
Log.d("TAG", "Pick Contact ERROR" + e.toString());
}

并使用 OnActivityResult 获取联系人并将其保存在您想要的任何位置(像这样)

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == PICK_CONTACT && resultCode == RESULT_OK) {
Uri contactUri = data.getData();
cursor = getContentResolver().query(contactUri, null, null, null, null);
cursor.moveToFirst();
String PhoneNumber =     cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
String ContactName =     cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME)));

【讨论】:

  • 你的回答很不错。但我想以编程方式编号。
  • 你能告诉我你想从联系人选择器中选择联系人吗..???并进一步解释您的问题。
【解决方案2】:

你可以试试下面的代码:

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

要使此代码正常工作,您需要权限:

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

【讨论】:

  • @DharmeshDhameliya 你得到了什么?
  • @DharmeshDhameliya 如果你得到空值,你可以显示一些东西让用户自己输入电话号码。
猜你喜欢
  • 1970-01-01
  • 2019-12-07
  • 2011-06-23
  • 2014-04-16
  • 2021-06-29
  • 2014-12-10
  • 1970-01-01
  • 1970-01-01
  • 2014-05-05
相关资源
最近更新 更多