幫我看看,快崩潰了.................
package com.lyxz.contentprovider_demo;
import android.app.Activity;
import android.content.ContentResolver;
import android.database.Cursor;
import android.os.Bundle;
import android.provider.ContactsContract.Contacts;
import android.provider.ContactsContract.Data;
import android.provider.ContactsContract.CommonDataKinds.Email;
import android.provider.ContactsContract.CommonDataKinds.Phone;
import android.util.Log;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
/**
* 電話通訊錄的查詢
*/
// 使用ContentResolver可以操作ContentProvider<增刪改查>
ContentResolver cr = getContentResolver();
/*
* 查詢方法;第一個屬性uri<導Contacts.的新包> 何為Uri? -Uri是指通用資源標志符
* content://com.imooc.provider/music/#
* content://---前綴表明數據受控于一個內容提供者.它從不修改,也就是schema
* com.imooc.provider---是指在AndroidMainfest.
* xml中我們注冊的provider中的authorities屬性所對應的唯一的 /music---具體操作于哪個條目
* /#---具體指定到哪個條目下的那條記錄(#標識通配符)?
*?
* 第二個屬性projection,為需要查詢的字段
*?
* 后面屬性依次為,查詢條件,排列順序
*?
* 返回類型為,游標
*/
Cursor c = cr.query(Contacts.CONTENT_URI, new String[] { Contacts._ID, Contacts.DISPLAY_NAME }, null, null, null);
//查詢:ID,聯系人姓名
if(c != null){
while(c.moveToNext()){
int id = c.getInt(c.getColumnIndex( Contacts._ID));
Log.i("info", "_id"+id);
Log.i("info", c.getString(c.getColumnIndex(Contacts.DISPLAY_NAME)));
//根據ID查詢電話號碼
Cursor c1 = cr.query(Phone.CONTENT_URI, new String[]{Phone.NUMBER,Phone.CONTENT_TYPE}, Phone.CONTACT_ID+"="+id, null, null);
if(c1 != null){
while(c1.moveToNext()){
int type = c.getInt(c1.getColumnIndex(Phone.CONTENT_TYPE));
if(type == Phone.TYPE_HOME){
Log.i("info", "家庭電話:"+c1.getString(c1.getColumnIndex(Phone.NUMBER)));
}else if(type == Phone.TYPE_MOBILE){
Log.i("info", "手機電話:"+c1.getString(c1.getColumnIndex(Phone.NUMBER)));
}
}
c1.close();
}
//根據ID查詢郵箱地址
Cursor c2 = cr.query(Email.CONTENT_URI, new String[]{Email.DATA,Email.TYPE},Email.CONTACT_ID+"="+id, null, null);
if(c2 != null){
while(c2.moveToNext()){
int type = c2.getInt(c2.getColumnIndex(Data.CONTENT_TYPE));
if(type == Email.TYPE_HOME){
Log.i("info","家庭郵編:"+c2.getColumnName(c2.getColumnIndex(Email.DATA)));
}else if(type == Email.TYPE_WORK){
Log.i("info", "工作郵編:"+c2.getColumnName(c2.getColumnIndex(Email.DATA)));
}
}
c2.close();
}
}
c.close();
}
}
}
2016-06-09
package com.example.howard.demoooo;
import android.app.Activity;
import android.content.ContentResolver;
import android.database.Cursor;
import android.provider.ContactsContract.Contacts;
import android.provider.ContactsContract.CommonDataKinds.Phone;
import android.provider.ContactsContract.CommonDataKinds.Email;
import android.os.Bundle;
import android.util.Log;
public class MainActivity extends Activity {
? ?@Override
? ?protected void onCreate(Bundle savedInstanceState) {
? ? ? ?super.onCreate(savedInstanceState);
? ? ? ?setContentView(R.layout.activity_main);
? ? ? ?ContentResolver cr = getContentResolver();
? ? ? ?Cursor c = cr.query(Contacts.CONTENT_URI,new String[] { Contacts._ID, Contacts.DISPLAY_NAME }, null, null, null);
? ? ? ?if(c != null){
? ? ? ? ? ?while(c.moveToNext()){
? ? ? ? ? ? ? ?int id = c.getInt(c.getColumnIndex("_id"));
? ? ? ? ? ? ? ?Log.i("info", "_id"+id);
? ? ? ? ? ? ? ?Log.i("info", c.getString(c.getColumnIndex("display_name")));
? ? ? ? ? ? ? ?Cursor c1 = cr.query(Phone.CONTENT_URI, new String[]{Phone.NUMBER, Phone.TYPE}, Phone.CONTACT_ID+"="+id, null, null);
? ? ? ? ? ? ? ?if(c1 != null){
? ? ? ? ? ? ? ? ? ?while(c1.moveToNext()){
? ? ? ? ? ? ? ? ? ? ? ?int type = c.getInt(c1.getColumnIndex(Phone.TYPE));
? ? ? ? ? ? ? ? ? ? ? ?if(type == Phone.TYPE_HOME){
? ? ? ? ? ? ? ? ? ? ? ? ? ?Log.i("info", "家庭電話:"+c1.getString(c1.getColumnIndex(Phone.NUMBER)));
? ? ? ? ? ? ? ? ? ? ? ?}else if(type == Phone.TYPE_MOBILE){
? ? ? ? ? ? ? ? ? ? ? ? ? ?Log.i("info", "手機電話:"+c1.getString(c1.getColumnIndex(Phone.NUMBER)));
? ? ? ? ? ? ? ? ? ? ? ?}
? ? ? ? ? ? ? ? ? ?}
? ? ? ? ? ? ? ? ? ?c1.close();
? ? ? ? ? ? ? ?}
? ? ? ? ? ? ? ?Cursor c2 = cr.query(Email.CONTENT_URI, new String[]{Email.DATA, Email.TYPE}, Email.CONTACT_ID+"="+id, null, null);
? ? ? ? ? ? ? ?if(c2 != null){
? ? ? ? ? ? ? ? ? ?while(c2.moveToNext()){
? ? ? ? ? ? ? ? ? ? ? ?int type = c2.getInt(c2.getColumnIndex(Email.TYPE));
? ? ? ? ? ? ? ? ? ? ? ?if(type == Email.TYPE_HOME){
? ? ? ? ? ? ? ? ? ? ? ? ? ?Log.i("info","家庭郵編:"+c2.getColumnName(c2.getColumnIndex(Email.DATA)));
? ? ? ? ? ? ? ? ? ? ? ?}else if(type == Email.TYPE_WORK){
? ? ? ? ? ? ? ? ? ? ? ? ? ?Log.i("info", "工作郵編:"+c2.getColumnName(c2.getColumnIndex(Email.DATA)));
? ? ? ? ? ? ? ? ? ? ? ?}
? ? ? ? ? ? ? ? ? ?}
? ? ? ? ? ? ? ? ? ?c2.close();
? ? ? ? ? ? ? ?}
? ? ? ? ? ?}
? ? ? ? ? ?c.close();
? ? ? ?}
? ?}
}
兄弟Phone 和 Email 的 type 是 Phone_TYPE 和 Email_TYPE... 不是CONTACT_TYPE....
2016-07-22
666