android - 在Android中按类型获取电话号码

标签 android

我想根据类型检索所选联系人的电话号码。我想打印电话号码类型和关联的电话号码。

我可以显示所选联系人的电话号码,但无法区分类型。

下面是我使用的示例代码:

if (Integer.parseInt(cursor.getString(
  cursor.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER))) > 0) {
    Cursor phoneCursor = getContentResolver().query(
        ContactsContract.CommonDataKinds.Phone.CONTENT_URI, 
        null, 
        ContactsContract.CommonDataKinds.Phone.CONTACT_ID +" = ?", 
        new String[]{contactId,}, null
    );
    while (phoneCursor.moveToNext()) {
        // Do something with phones
        System.out.println("phone numbers :"
         + phoneCursor.getString(
            phoneCursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)
         )
        );  
    }
    phoneCursor.close();
}

最佳答案

以防万一您不想自己做,这里有一个类型列表,其中包含 android 允许的所有主要类型。

String sType = "";
switch (type) {
case Phone.TYPE_HOME:
    sType = "Home";
    break;
case Phone.TYPE_MOBILE:
    sType = "Mobile";
    break;
case Phone.TYPE_WORK:
    sType = "Work";
    break;
case Phone.TYPE_FAX_HOME:
    sType = "Home Fax";
    break;
case Phone.TYPE_FAX_WORK:
    sType = "Work Fax";
    break;
case Phone.TYPE_MAIN:
    sType = "Main";
    break;
case Phone.TYPE_OTHER:
    sType = "Other";
    break;
case Phone.TYPE_CUSTOM:
    sType = "Custom";
    break;
case Phone.TYPE_PAGER:
    sType = "Pager";
    break;
}

关于android - 在Android中按类型获取电话号码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6579957/

相关文章:

android - 无法禁用 android.widget.Button

android - 为什么计数器变量的值在屏幕上没有变化?

android - webview 无法正常工作?

java - 如何制作安卓:lineSpacingMultiplier behaves same for both EditText and TextView

android - 如何在android中制作 TextView 中心?

java - 我如何根据 GPS 位置在网络服务器和 Android 应用程序之间进行交互?

android - Camera takePicture 并不总是根据图片大小进行 jpeg 回调

android - 将刻度线 (✔) 添加到 string.xml

专注于来电的 Android 电话应用程序

jquery - 从 Android WebView 中的链接播放 MP4 或 MP3