没有得到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);