没有得到android的电话号码

没有得到android的电话号码

问题描述:

我试过下面的代码,它会显示“名称”,但不显示“数字”。
有人能指出我犯了什么错误吗?没有得到android的电话号码

package org.testcont; 

import android.app.Activity; 
import android.content.ContentResolver; 
import android.content.ContentUris; 
import android.database.Cursor; 
import android.net.Uri; 
import android.os.Bundle; 
import android.provider.Contacts; 
import android.provider.Contacts.People; 
import android.widget.EditText; 
import android.widget.TextView; 

public class testcontActivity extends Activity { 
    /** Called when the activity is first created. */ 
    TextView tvname; 
    TextView tvnumber; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     tvname = (TextView) findViewById(R.id.TextView01); 
     tvnumber = (TextView) findViewById(R.id.TextView02); 

     Cursor c=getContentResolver().query(People.CONTENT_URI,null,null,null,null); 
     while(c.moveToNext()){ 
     int name=c.getColumnIndexOrThrow(People.NAME); 
     String nm=c.getString(name); 
     tvname.setText(nm); 
     int number=c.getColumnIndexOrThrow(People.NUMBER); 
     String s=c.getString(number); 

     } 
     c.close(); 
    } 
} 

您正在使用旧的API,而你应该使用这个

android.provider.ContactsContract.CommonDataKinds.Phone 

类检索联系人姓名和电话号码也做如下修改:

Cursor c=getContentResolver().query(Phone.CONTENT_URI,null,null,null,null); 
int name=c.getColumnIndexOrThrow(Phone.DISPLAY_NAME); 
int number=c.getColumnIndexOrThrow(Phone.NUMBER);