- 浏览: 48358 次
- 性别:
- 来自: 苏州
文章分类
最新评论
实例1:
android 中获取联系人
ContentResolver cr = getContentResolver();
Cursor cursor = cr.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);
while(cursor.moveToNext()){
//get name
int nameFiledColumnIndex = cursor.getColumnIndex(PhoneLookup.DISPLAY_NAME);
String contact = cursor.getString(nameFiledColumnIndex);
String[] PHONES_PROJECTION = new String[] { "_id","display_name","data1","data3"};//
String contactId = cursor.getString(cursor.getColumnIndex(PhoneLookup._ID));
Cursor phone = cr.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, PHONES_PROJECTION,
ContactsContract.CommonDataKinds.Phone.CONTACT_ID + "=" + contactId, null, null);
//name type ..
while(phone.moveToNext()) {
int i = phone.getInt(0);
String str = phone.getString(1);
str = phone.getString(2);
str = phone.getString(3);
}
phone.close();
//addr
Cursor addrCur = cr.query(ContactsContract.CommonDataKinds.StructuredPostal.CONTENT_URI ,
new String[]{"_id","data1","data2","data3"}, ContactsContract.CommonDataKinds.Phone.CONTACT_ID + "=" + contactId , null, null);
while(addrCur.moveToNext()) {
int i = addrCur.getInt(0);
String str = addrCur.getString(1);
str = addrCur.getString(2);
str = addrCur.getString(3);
}
addrCur.close();
//email
Cursor emailCur = cr.query(ContactsContract.CommonDataKinds.Email.CONTENT_URI ,
new String[]{"_id","data1","data2","data3"}, ContactsContract.CommonDataKinds.Phone.CONTACT_ID + "=" + contactId , null, null);
while(emailCur.moveToNext()) {
int i = emailCur.getInt(0);
String str = emailCur.getString(1);
str = emailCur.getString(2);
str = emailCur.getString(3);
}
emailCur.close();
}
cursor.close();
android中获取通话记录
String str = "";
int type;
long callTime;
Date date;
String time= "";
ContentResolver cr = getContentResolver();
final Cursor cursor = cr.query(CallLog.Calls.CONTENT_URI, new String[]{CallLog.Calls.NUMBER,CallLog.Calls.CACHED_NAME,CallLog.Calls.TYPE, CallLog.Calls.DATE}, null, null,CallLog.Calls.DEFAULT_SORT_ORDER);
for (int i = 0; i < cursor.getCount(); i++) {
cursor.moveToPosition(i);
str = cursor.getString(0);
str = cursor.getString(1);
type = cursor.getInt(2);
SimpleDateFormat sfd = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
date = new Date(Long.parseLong(cursor.getString(3)));
time = sfd.format(date);
}
实例2:
Andorid1.5及其以前的项目放到Android2.0上时,如果代码中有
import android.provider.Contacts;
Eclipse会提示“建议不使用”,那是因为在Android2.0中,联系人api发生了变化,需要使用ContactsContract。
直接看下面一个最简单的例子,读取联系人的姓名和电话号码:
读取联系人的名字很简单,但是在读取电话号码时,就需要先去的联系人的ID,然后在通过ID去查找电话号码!一个联系人可能存在多个电话号码!
//得到ContentResolver对象
ContentResolver cr = getContentResolver();
//取得电话本中开始一项的光标
Cursor cursor = cr.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);
while (cursor.moveToNext())
{
// 取得联系人名字
int nameFieldColumnIndex = cursor.getColumnIndex(PhoneLookup.DISPLAY_NAME);
String name = cursor.getString(nameFieldColumnIndex);
string += (name);
// 取得联系人ID
String contactId = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID));
Cursor phone = cr.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = "
+ contactId, null, null);
// 取得电话号码(可能存在多个号码)
while (phone.moveToNext())
{
String strPhoneNumber = phone.getString(phone.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
string += (":" + strPhoneNumber);
}
string += "\n";
phone.close();
}
cursor.close();
实例3:
import android.app.Activity;
import android.content.Intent;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.provider.ContactsContract;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
public class PhoneBook extends Activity {
/*声明四个UI变量与一个常数作为Activity接收回传值用*/
private TextView mTextView01;
private Button mButton01;
private EditText mEditText01;
private EditText mEditText02;
private static final int PICK_CONTACT_SUBACTIVITY = 2;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
/*透过findViewById建构子来建构一个TextView,两个EditText,一个Button对象**/
mTextView01 = (TextView)findViewById(R.id.myTextView1);
mEditText01 = (EditText)findViewById(R.id.myEditText01);
mEditText02 = (EditText)findViewById(R.id.myEditText02);
mButton01 = (Button)findViewById(R.id.myButton1);
/*设定onClickListener 让使用者点选Button时搜寻联系人*/
mButton01.setOnClickListener(new Button.OnClickListener()
{
// @Override
public void onClick(View v)
{
// TODO Auto-generated method stub
/*建构Uri来取得联络人的资源位置*/
// Uri uri = Uri.parse("content://contacts/people/");
/*透过Intent来取得联络人数据并回传所选的值*/
//Intent intent = new Intent(Intent.ACTION_PICK, uri);
/*开启新的Activity并期望该Activity回传值*/
//startActivityForResult(intent, PICK_CONTACT_SUBACTIVITY);
startActivityForResult
(
new Intent(Intent.ACTION_PICK,
android.provider.ContactsContract.Contacts.CONTENT_URI),
PICK_CONTACT_SUBACTIVITY);
}
});
}
@Override
protected void onActivityResult (int requestCode, int resultCode, Intent data)
{
// TODO Auto-generated method stub
try
{
switch (requestCode)
{
case PICK_CONTACT_SUBACTIVITY:
final Uri uriRet = data.getData();
if(uriRet != null)
{
try
{
/* 必须要有android.permission.READ_CONTACTS权限 */
Cursor c = managedQuery(uriRet, null, null, null, null);
/*将Cursor移到资料最前端*/
c.moveToFirst();
/*取得联络人的姓名*/
String strName = c.getString(c.getColumnIndexOrThrow(ContactsContract.Contacts.DISPLAY_NAME));
/*将姓名写入EditText01中*/
mEditText01.setText(strName);
/*取得联络人的电话*/
int contactId = c.getInt(c.getColumnIndex(ContactsContract.Contacts._ID));
Cursor phones = getContentResolver().query ( ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID +" = "+ contactId, null, null );
StringBuffer sb = new StringBuffer();
int typePhone, resType;
String numPhone;
if (phones.getCount() > 0)
{
phones.moveToFirst();
/* 2.0可以允许User设定多组电话号码,但本范例只捞一组电话号码作示范 */
typePhone = phones.getInt ( phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.TYPE) );
numPhone = phones.getString ( phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER) );
resType = ContactsContract.CommonDataKinds.Phone.getTypeLabelResource(typePhone);
sb.append(getString(resType) +": "+ numPhone +"\n");
/*将电话写入EditText02中*/
mEditText02.setText(numPhone);
}
else
{
sb.append("no Phone number found");
}
/*Toast是否读取到完整的电话种类与电话号码*/
Toast.makeText(this, sb.toString(), Toast.LENGTH_SHORT).show();
}
catch(Exception e)
{
/*将错误信息在TextView中显示*/
mTextView01.setText(e.toString());
e.printStackTrace();
}
}
break;
default: break;
}
}
catch(Exception e)
{
e.printStackTrace();
}
super.onActivityResult(requestCode, resultCode, data);
}
}
-------------------------
string.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">PhoneBook</string>
<string name="str_button1">搜索</string>
<string name="str_title">我的联系人</string>
<string name="str_name">姓名</string>
<string name="str_telephone">电话号码</string>
</resources>
-----------------------------
main.xml
<?xml version="1.0" encoding="utf-8"?>
<AbsoluteLayout
android:id="@+id/widget32"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
>
<TextView
android:id="@+id/myTextView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/str_title"
android:layout_x="0px"
android:layout_y="0px"
>
</TextView>
<EditText
android:id="@+id/myEditText01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/str_name"
android:textSize="18sp"
android:layout_x="0px"
android:layout_y="22px"
>
</EditText>
<EditText
android:id="@+id/myEditText02"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/str_telephone"
android:textSize="18sp"
android:layout_x="0px"
android:layout_y="82px"
>
</EditText>
<Button
android:id="@+id/myButton1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/str_button1"
android:layout_x="10px"
android:layout_y="142px"
>
</Button>
</AbsoluteLayout>
------------------------------------
AndroidManifest.xml
注意在</application>后要加上
<uses-permission android:name="android.permission.READ_CONTACTS"></uses-permission>
<!--取得读取通讯录的权限 -->
实例4:
package com.activity;
import android.app.Activity;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.provider.Contacts;
import android.provider.Contacts.People;
import android.widget.TextView;
public class Main extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
TextView tv = (TextView) findViewById(R.id.TextView01);
String columns[] = new String[] { People._ID, People.NAME,
People.NUMBER, People.PRIMARY_EMAIL_ID,
People.PRIMARY_ORGANIZATION_ID, People.PRIMARY_PHONE_ID,
People.DISPLAY_NAME,
People.IM_ACCOUNT, People.IM_HANDLE, People.PHONETIC_NAME,
People.TYPE };
Uri mContacts = People.CONTENT_URI;
Cursor cur = managedQuery(mContacts, columns, // 要返回的数据字段
null, // WHERE子句
null, // WHERE 子句的参数
People.NAME // Order-by子句
);
if (cur.moveToFirst()) {
Cursor newcur = null;
do {
// 获取字段的值
String name = cur.getString(cur.getColumnIndex(People.NAME));
String phoneNo = cur.getString(cur
.getColumnIndex(People.NUMBER));
String peopleId = cur.getString(cur.getColumnIndex(People._ID));
String[] PROJECTION = new String[] {
Contacts.ContactMethods._ID,
Contacts.ContactMethods.KIND,
Contacts.ContactMethods.DATA };
newcur = managedQuery(Contacts.ContactMethods.CONTENT_URI,
PROJECTION, Contacts.ContactMethods.PERSON_ID + "=\'"
+ cur.getLong(cur.getColumnIndex(People._ID))
+ "\'", null, null);
startManagingCursor(newcur);
String email = "";
if (newcur.moveToFirst()) {
while (newcur.moveToNext()) {
email = email+ newcur.getString(newcur.getColumnIndex(Contacts.ContactMethods.DATA));
}
}
tv.setText("name = " + name + " phoneNo = " + phoneNo
+ "email = " + email);
if (email != null && !"".equals(email)
&& email.trim().length() != 0) {
// 此处可以取到联系人邮件
}
} while (cur.moveToNext());
if (newcur != null) {
newcur.close();// 用完得关闭吧
}
}
if (cur != null)
cur.close(); // 用完得关闭吧
}
}
android 中获取联系人
ContentResolver cr = getContentResolver();
Cursor cursor = cr.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);
while(cursor.moveToNext()){
//get name
int nameFiledColumnIndex = cursor.getColumnIndex(PhoneLookup.DISPLAY_NAME);
String contact = cursor.getString(nameFiledColumnIndex);
String[] PHONES_PROJECTION = new String[] { "_id","display_name","data1","data3"};//
String contactId = cursor.getString(cursor.getColumnIndex(PhoneLookup._ID));
Cursor phone = cr.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, PHONES_PROJECTION,
ContactsContract.CommonDataKinds.Phone.CONTACT_ID + "=" + contactId, null, null);
//name type ..
while(phone.moveToNext()) {
int i = phone.getInt(0);
String str = phone.getString(1);
str = phone.getString(2);
str = phone.getString(3);
}
phone.close();
//addr
Cursor addrCur = cr.query(ContactsContract.CommonDataKinds.StructuredPostal.CONTENT_URI ,
new String[]{"_id","data1","data2","data3"}, ContactsContract.CommonDataKinds.Phone.CONTACT_ID + "=" + contactId , null, null);
while(addrCur.moveToNext()) {
int i = addrCur.getInt(0);
String str = addrCur.getString(1);
str = addrCur.getString(2);
str = addrCur.getString(3);
}
addrCur.close();
Cursor emailCur = cr.query(ContactsContract.CommonDataKinds.Email.CONTENT_URI ,
new String[]{"_id","data1","data2","data3"}, ContactsContract.CommonDataKinds.Phone.CONTACT_ID + "=" + contactId , null, null);
while(emailCur.moveToNext()) {
int i = emailCur.getInt(0);
String str = emailCur.getString(1);
str = emailCur.getString(2);
str = emailCur.getString(3);
}
emailCur.close();
}
cursor.close();
android中获取通话记录
String str = "";
int type;
long callTime;
Date date;
String time= "";
ContentResolver cr = getContentResolver();
final Cursor cursor = cr.query(CallLog.Calls.CONTENT_URI, new String[]{CallLog.Calls.NUMBER,CallLog.Calls.CACHED_NAME,CallLog.Calls.TYPE, CallLog.Calls.DATE}, null, null,CallLog.Calls.DEFAULT_SORT_ORDER);
for (int i = 0; i < cursor.getCount(); i++) {
cursor.moveToPosition(i);
str = cursor.getString(0);
str = cursor.getString(1);
type = cursor.getInt(2);
SimpleDateFormat sfd = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
date = new Date(Long.parseLong(cursor.getString(3)));
time = sfd.format(date);
}
实例2:
Andorid1.5及其以前的项目放到Android2.0上时,如果代码中有
import android.provider.Contacts;
Eclipse会提示“建议不使用”,那是因为在Android2.0中,联系人api发生了变化,需要使用ContactsContract。
直接看下面一个最简单的例子,读取联系人的姓名和电话号码:
读取联系人的名字很简单,但是在读取电话号码时,就需要先去的联系人的ID,然后在通过ID去查找电话号码!一个联系人可能存在多个电话号码!
//得到ContentResolver对象
ContentResolver cr = getContentResolver();
//取得电话本中开始一项的光标
Cursor cursor = cr.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);
while (cursor.moveToNext())
{
// 取得联系人名字
int nameFieldColumnIndex = cursor.getColumnIndex(PhoneLookup.DISPLAY_NAME);
String name = cursor.getString(nameFieldColumnIndex);
string += (name);
// 取得联系人ID
String contactId = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID));
Cursor phone = cr.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = "
+ contactId, null, null);
// 取得电话号码(可能存在多个号码)
while (phone.moveToNext())
{
String strPhoneNumber = phone.getString(phone.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
string += (":" + strPhoneNumber);
}
string += "\n";
phone.close();
}
cursor.close();
实例3:
import android.app.Activity;
import android.content.Intent;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.provider.ContactsContract;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
public class PhoneBook extends Activity {
/*声明四个UI变量与一个常数作为Activity接收回传值用*/
private TextView mTextView01;
private Button mButton01;
private EditText mEditText01;
private EditText mEditText02;
private static final int PICK_CONTACT_SUBACTIVITY = 2;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
/*透过findViewById建构子来建构一个TextView,两个EditText,一个Button对象**/
mTextView01 = (TextView)findViewById(R.id.myTextView1);
mEditText01 = (EditText)findViewById(R.id.myEditText01);
mEditText02 = (EditText)findViewById(R.id.myEditText02);
mButton01 = (Button)findViewById(R.id.myButton1);
/*设定onClickListener 让使用者点选Button时搜寻联系人*/
mButton01.setOnClickListener(new Button.OnClickListener()
{
// @Override
public void onClick(View v)
{
// TODO Auto-generated method stub
/*建构Uri来取得联络人的资源位置*/
// Uri uri = Uri.parse("content://contacts/people/");
/*透过Intent来取得联络人数据并回传所选的值*/
//Intent intent = new Intent(Intent.ACTION_PICK, uri);
/*开启新的Activity并期望该Activity回传值*/
//startActivityForResult(intent, PICK_CONTACT_SUBACTIVITY);
startActivityForResult
(
new Intent(Intent.ACTION_PICK,
android.provider.ContactsContract.Contacts.CONTENT_URI),
PICK_CONTACT_SUBACTIVITY);
}
});
}
@Override
protected void onActivityResult (int requestCode, int resultCode, Intent data)
{
// TODO Auto-generated method stub
try
{
switch (requestCode)
{
case PICK_CONTACT_SUBACTIVITY:
final Uri uriRet = data.getData();
if(uriRet != null)
{
try
{
/* 必须要有android.permission.READ_CONTACTS权限 */
Cursor c = managedQuery(uriRet, null, null, null, null);
/*将Cursor移到资料最前端*/
c.moveToFirst();
/*取得联络人的姓名*/
String strName = c.getString(c.getColumnIndexOrThrow(ContactsContract.Contacts.DISPLAY_NAME));
/*将姓名写入EditText01中*/
mEditText01.setText(strName);
/*取得联络人的电话*/
int contactId = c.getInt(c.getColumnIndex(ContactsContract.Contacts._ID));
Cursor phones = getContentResolver().query ( ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID +" = "+ contactId, null, null );
StringBuffer sb = new StringBuffer();
int typePhone, resType;
String numPhone;
if (phones.getCount() > 0)
{
phones.moveToFirst();
/* 2.0可以允许User设定多组电话号码,但本范例只捞一组电话号码作示范 */
typePhone = phones.getInt ( phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.TYPE) );
numPhone = phones.getString ( phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER) );
resType = ContactsContract.CommonDataKinds.Phone.getTypeLabelResource(typePhone);
sb.append(getString(resType) +": "+ numPhone +"\n");
/*将电话写入EditText02中*/
mEditText02.setText(numPhone);
}
else
{
sb.append("no Phone number found");
}
/*Toast是否读取到完整的电话种类与电话号码*/
Toast.makeText(this, sb.toString(), Toast.LENGTH_SHORT).show();
}
catch(Exception e)
{
/*将错误信息在TextView中显示*/
mTextView01.setText(e.toString());
e.printStackTrace();
}
}
break;
default: break;
}
}
catch(Exception e)
{
e.printStackTrace();
}
super.onActivityResult(requestCode, resultCode, data);
}
}
-------------------------
string.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">PhoneBook</string>
<string name="str_button1">搜索</string>
<string name="str_title">我的联系人</string>
<string name="str_name">姓名</string>
<string name="str_telephone">电话号码</string>
</resources>
-----------------------------
main.xml
<?xml version="1.0" encoding="utf-8"?>
<AbsoluteLayout
android:id="@+id/widget32"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
>
<TextView
android:id="@+id/myTextView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/str_title"
android:layout_x="0px"
android:layout_y="0px"
>
</TextView>
<EditText
android:id="@+id/myEditText01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/str_name"
android:textSize="18sp"
android:layout_x="0px"
android:layout_y="22px"
>
</EditText>
<EditText
android:id="@+id/myEditText02"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/str_telephone"
android:textSize="18sp"
android:layout_x="0px"
android:layout_y="82px"
>
</EditText>
<Button
android:id="@+id/myButton1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/str_button1"
android:layout_x="10px"
android:layout_y="142px"
>
</Button>
</AbsoluteLayout>
------------------------------------
AndroidManifest.xml
注意在</application>后要加上
<uses-permission android:name="android.permission.READ_CONTACTS"></uses-permission>
<!--取得读取通讯录的权限 -->
实例4:
package com.activity;
import android.app.Activity;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.provider.Contacts;
import android.provider.Contacts.People;
import android.widget.TextView;
public class Main extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
TextView tv = (TextView) findViewById(R.id.TextView01);
String columns[] = new String[] { People._ID, People.NAME,
People.NUMBER, People.PRIMARY_EMAIL_ID,
People.PRIMARY_ORGANIZATION_ID, People.PRIMARY_PHONE_ID,
People.DISPLAY_NAME,
People.IM_ACCOUNT, People.IM_HANDLE, People.PHONETIC_NAME,
People.TYPE };
Uri mContacts = People.CONTENT_URI;
Cursor cur = managedQuery(mContacts, columns, // 要返回的数据字段
null, // WHERE子句
null, // WHERE 子句的参数
People.NAME // Order-by子句
);
if (cur.moveToFirst()) {
Cursor newcur = null;
do {
// 获取字段的值
String name = cur.getString(cur.getColumnIndex(People.NAME));
String phoneNo = cur.getString(cur
.getColumnIndex(People.NUMBER));
String peopleId = cur.getString(cur.getColumnIndex(People._ID));
String[] PROJECTION = new String[] {
Contacts.ContactMethods._ID,
Contacts.ContactMethods.KIND,
Contacts.ContactMethods.DATA };
newcur = managedQuery(Contacts.ContactMethods.CONTENT_URI,
PROJECTION, Contacts.ContactMethods.PERSON_ID + "=\'"
+ cur.getLong(cur.getColumnIndex(People._ID))
+ "\'", null, null);
startManagingCursor(newcur);
String email = "";
if (newcur.moveToFirst()) {
while (newcur.moveToNext()) {
email = email+ newcur.getString(newcur.getColumnIndex(Contacts.ContactMethods.DATA));
}
}
tv.setText("name = " + name + " phoneNo = " + phoneNo
+ "email = " + email);
if (email != null && !"".equals(email)
&& email.trim().length() != 0) {
// 此处可以取到联系人邮件
}
} while (cur.moveToNext());
if (newcur != null) {
newcur.close();// 用完得关闭吧
}
}
if (cur != null)
cur.close(); // 用完得关闭吧
}
}
相关推荐
android的SDK做了调整,相应的读取联系人资料有了变化。 这里提供的是如何在2.0包括2.1中读取联系人资料的代码
Android Studio 3.2 读取通话记录姓名,手机号,通话时间,通话记录等源码。
Android读取通讯录中设置邮件的联系人 DEMO Android读取通讯录中设置邮件的联系人 demo
在android平台的可以读取系统联系人的一个demo,可以自己加工做一些用于调用系统联系人接口的应用。
Android 读取联系人信息
android 8.1系统蓝牙连接,获取通讯录及通话记录、蓝牙电话等相关代码逻辑梳理
android应用,读取手机联系人等信息。ContentResolver获取手机联系人、电话
Android通过内容提供者读取联系人,手机上必须要有联系人数据,也可以直接在真机上运行
Android仿手机读取联系人,并且可以查询联系人 ,还可以点击发送发短信。
Android实例之读取设备联系人
Android读取联系人代码示例,相关文章请访问:http://hyz301.iteye.com/blog/2211950
基于android studio的联系人读取及电话拨打,参考了《第一行代码》的思路
这个资源来自于ArcGis官方博客,提取了其中的Android部分。
一个简单的demo,演示如何通过内容提供器读取手机联系人。
ASP.NET 2.0 读取配置文件[INI]
附件中包含一个asp.net 2.0读取Excel文件的Demo。流程:首先将客户端的excel文件上传到服务器端,然后返回excel文件的保存路径,最后读取服务器端的excel文件,并在gridview中显示。
Android默认浏览器会读取联系人,修改如下
附件中是通过蓝牙读取终端设备通讯录、通话记录等所需要的PBAP、Vcard、JavaOBEX源码文件,只需导入到相应的工程里即可使用。
基于C++实现的kinect v2.0点云数据读取成xyz坐标的demo源码.zip基于C++实现的kinect v2.0点云数据读取成xyz坐标的demo源码.zip基于C++实现的kinect v2.0点云数据读取成xyz坐标的demo源码.zip基于C++实现的kinect v...
本示例演示了在Android中如何使用Loader异步读取联系人数据,并且通过使用support v4支持低版本的Android系统(1.6+)。 该源码的详细解读可参见博文http://blog.csdn.net/iispring/article/details/48834767