在Android 2.2上读取联系人

发布于 2024-10-25 22:19:26 字数 2129 浏览 2 评论 0原文

我使用以下代码在 Android 2.2 上读取电话联系人姓名和号码。
我想要做的是读取每个联系人姓名和号码并将其附加到 Stringbuilder
目前我可以获取联系人姓名,但获取联系电话时遇到一些问题。
我怎样才能实现这个目标?请提供示例片段以获取数字。

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-----------------------------



}


};});}}

I'm using the following code to read phone contact names and numbers on Android 2.2.
What i want to do is go reading each contact name and number and append that to a Stringbuilder.
Presently I'm able to get the contact name, but there's some trouble getting the contact numbers.
How can I achieve this? Please provide a sample snippet to get the numbers.

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-----------------------------



}


};});}}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

情感失落者 2024-11-01 22:19:26

复制自此处

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();

Copied from 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();
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文