【问题标题】:Reading contacts on Android 2.2在 Android 2.2 上读取联系人
【发布时间】:2011-07-20 07:37:06
【问题描述】:

我正在使用以下代码在 Android 2.2 上读取电话联系人姓名和号码。
我想做的是阅读每个联系人姓名和号码并将其附加到Stringbuilder。
目前我可以获取联系人姓名,但获取联系人号码时遇到了一些问题。
我怎样才能做到这一点?请提供样本 sn-p 以获取数字。

public class main extends Activity {
/** Called when the activity is first created. */
public static StringBuilder s = new StringBuilder();
public static String number= new String();// = new String();
public static String contact = new String();
public final String phonenumber = new String();
public String formattedPhoneNumber = new String();
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);


Button button1 = (Button) findViewById(R.id.button1);
button1.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
    // TODO Auto-generated method stub  
 //-----------code to run when button is clicked-------------------
    EditText textfield = (EditText) findViewById(R.id.textfield);

    Cursor people = getContentResolver().query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);
    Cursor cursor = getContentResolver().query(Phone.CONTENT_URI, new String[]{Phone.NUMBER}, null,null, null);
    if(cursor != null) {
        if(cursor.getCount() > 0) {
            cursor.moveToFirst();
            formattedPhoneNumber = cursor.getString( cursor.getColumnIndex(Phone.NUMBER) );
            //Log.d("TestActivity", String.format("The selected phone number is: %s", formattedPhoneNumber));
        }
        cursor.close();

    while(people.moveToNext()) {
       int nameFieldColumnIndex = people.getColumnIndex(PhoneLookup.DISPLAY_NAME);
       contact = people.getString(nameFieldColumnIndex);
       int numberFieldColumnIndex = people.getColumnIndex(PhoneLookup.NUMBER);
      //umber = people.getString(numberFieldColumnIndex);
    }

    people.close();


    //--------------code for getting phone number---

    textfield.setText("hello: "+contact+" "+ formattedPhoneNumber);


    //+String.valueOf(number));


    //---------------end of code-----------------------------



}


};});}}

【问题讨论】:

    标签: android android-contacts phone-number contactscontract


    【解决方案1】:

    复制自here:

    ContentResolver cr = getContentResolver();
    Cursor cursor = cr.query(ContactsContract.Contacts.CONTENT_URI, null,
        "DISPLAY_NAME = '" + NAME + "'", null, null);
    if (cursor.moveToFirst()) {
        String contactId =
            cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID));
        //
        //  Get all phone numbers.
        //
        Cursor phones = cr.query(Phone.CONTENT_URI, null,
            Phone.CONTACT_ID + " = " + contactId, null, null);
        while (phones.moveToNext()) {
            String number = phones.getString(phones.getColumnIndex(Phone.NUMBER));
            int type = phones.getInt(phones.getColumnIndex(Phone.TYPE));
            switch (type) {
                case Phone.TYPE_HOME:
                    // do something with the Home number here...
                    break;
                case Phone.TYPE_MOBILE:
                    // do something with the Mobile number here...
                    break;
                case Phone.TYPE_WORK:
                    // do something with the Work number here...
                    break;
                }
        }
        phones.close();
       }
       cursor.close();
    

    【讨论】:

    • 你能告诉我我应该在“//在这里用手机号做点什么...”处写什么吗???因为我尝试通过教程但无法弄清楚它是否可以工作..
    • 字符串号码应包含电话号码。您可以将其附加到您的 StringBuilder。
    猜你喜欢
    • 2023-03-08
    • 1970-01-01
    • 1970-01-01
    • 2011-05-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多