您的位置:首页 > 移动开发 > Android开发

Forms Android Contacts

2015-07-31 23:06 501 查看
…
forms定义接口

using System;
using System.Collections;
using System.Collections.Generic;

namespace
{
public interface ISystemContact
{
//获取所有联系人
List<String> GetSystemContact ();
//插入联系人
bool InsertContact(string name,string number);
//根据姓名查找联系人电话
List<string> GetPhoneByName(string name);
}
}

平台实现
using System;
using Android.Content;
using Android.Provider;
using Xamarin.Forms;
using Android.App;
using System.Collections;
using System.Collections.Generic;
using.TDroid;

[assembly:Dependency(typeof(SystemContact))]
namespace.TDroid
{
public class SystemContact:Java.Lang.Object,ISystemContact
{
public SystemContact()
{

}
public List<String> GetSystemContact()
{
//            Hashtable hshTable = new Hashtable ();
//            var uri=ContactsContract.Contacts.ContentUri;
//            string[] projection = {
//                ContactsContract.Contacts.InterfaceConsts.Id,
//                ContactsContract.Contacts.InterfaceConsts.DisplayName,
//                ContactsContract.Contacts.InterfaceConsts.PhotoThumbnailUri,
//                ContactsContract.Contacts.InterfaceConsts.HasPhoneNumber,
//            };
//            var cursor = ((Activity)Forms.Context).ManagedQuery (uri,projection,null,null,null);
//            if (cursor.MoveToFirst ()) {
//                do{
//                    string _id=cursor.GetString(cursor.GetColumnIndex(projection[0]));
//                    string _name=cursor.GetString(cursor.GetColumnIndex(projection[1]));
//                    List<string> _number=new List<string> ();
//                    int fla=cursor.GetInt(cursor.GetColumnIndex(projection[3]));
//                    if(fla>0){
//                        var cur_phone = ((Activity)Forms.Context).ManagedQuery (ContactsContract.CommonDataKinds.Phone.ContentUri,null,null, null, null);
//                        if(cur_phone.MoveToFirst()){
//                            do{
//                                //遍历所有的电话号码
//                                String phoneNumber= cur_phone.GetString(cur_phone.GetColumnIndex(ContactsContract.CommonDataKinds.Phone.Number));
//                                _number.Add(phoneNumber);
//                            }while(cur_phone.MoveToNext());
//                        }
//                    }
//                    hshTable.Add(_name,_number);
//                }while(cursor.MoveToNext());
//            }
List<string> hshtable = new List<string> ();
var cur_phone = ((Activity)Forms.Context).ManagedQuery
(ContactsContract.CommonDataKinds.Phone.ContentUri,null,null, null, null);
if (cur_phone != null&&cur_phone.MoveToFirst()) {
do {
string[] _names = cur_phone.GetColumnNames ();
var _number = cur_phone.GetString (cur_phone.GetColumnIndex ("data1"));
var _name = cur_phone.GetString (cur_phone.GetColumnIndex ("display_name"));
hshtable.Add(_name+":"+_number);
} while(cur_phone.MoveToNext ());
}
return hshtable;
}

//添加联系人,号码 姓名 重复则覆盖
public bool InsertContact(string name,string number){
try{
ContentValues values = new ContentValues ();
Android.Net.Uri rawContactUri=((Activity)Forms.Context).ContentResolver
.Insert (Android.Provider.ContactsContract.RawContacts.ContentUri,values);
long rawContactId= ContentUris.ParseId (rawContactUri);
//添加姓名
values.Clear ();
values.Put (Android.Provider.ContactsContract.Data.InterfaceConsts.RawContactId,rawContactId);
values.Put (Android.Provider.ContactsContract.Data.InterfaceConsts.Mimetype,Android.Provider
.ContactsContract.CommonDataKinds.StructuredName.ContentItemType);
values.Put (Android.Provider.ContactsContract.CommonDataKinds.StructuredName.GivenName,name);
((Activity)Forms.Context).ContentResolver.Insert (Android.Provider.ContactsContract.Data.ContentUri,values);
//添加号码
values.Clear ();
values.Put (Android.Provider.ContactsContract.Data.InterfaceConsts.RawContactId,rawContactId);
values.Put (Android.Provider.ContactsContract.Data.InterfaceConsts.Mimetype,Android.Provider
.ContactsContract.CommonDataKinds.Phone.ContentItemType);
values.Put (Android.Provider.ContactsContract.CommonDataKinds.Phone.Number,number);
values.Put (Android.Provider.ContactsContract.CommonDataKinds.Phone.InterfaceConsts
.Type,Android.Provider.ContactsContract.CommonDataKinds.Phone.InterfaceConsts.TypeCustom);
((Activity)Forms.Context).ContentResolver.Insert (Android.Provider.ContactsContract.Data.ContentUri,values);

//添加email
/*
values.Clear ();
values.Put (Android.Provider.ContactsContract.Data.InterfaceConsts.RawContactId,rawContactId);
values.Put (Android.Provider.ContactsContract.Data.InterfaceConsts.Mimetype,Android.Provider.ContactsContract.CommonDataKinds.Email.ContentItemType);
values.Put (Android.Provider.ContactsContract.CommonDataKinds.Email.InterfaceConsts.Data,"111@qq.com");
values.Put (Android.Provider.ContactsContract.CommonDataKinds.Email.InterfaceConsts.Type,Android.Provider.ContactsContract.CommonDataKinds.Email.InterfaceConsts.TypeCustom);
((Activity)Forms.Context).ContentResolver.Insert (Android.Provider.ContactsContract.Data.ContentUri,values);
*/
return true;
}
catch(Exception ex){
return false;
}
}

public List<string> GetPhoneByName(string name){
List<string> listPhone = new List<string> ();
string id = GetContactId (name);
if (id.Equals ("0")) {
System.Diagnostics.Debug.WriteLine (name + " not exist");
} else {
try{
var cursor = ((Activity)Forms.Context).ManagedQuery
(ContactsContract.CommonDataKinds.Phone.ContentUri,
new string[]{Android.Provider.ContactsContract.CommonDataKinds.Phone.Number,
Android.Provider.ContactsContract.CommonDataKinds.Phone.InterfaceConsts.Type},
Android.Provider.ContactsContract.CommonDataKinds.Phone.InterfaceConsts.ContactId+ "='" + id + "'",
null,
null);
while(cursor.MoveToNext()){
string phone = cursor.GetString(
cursor.GetColumnIndex(Android.Provider.ContactsContract.CommonDataKinds.Phone.Number));
listPhone.Add(phone);
}
}catch(Exception e){

}
}
return listPhone;
}

private string GetContactId(string name){
string id = "0";
try{
var cursor = ((Activity)Forms.Context).ManagedQuery
(Android.Provider.ContactsContract.Contacts.ContentUri,
new string[]{Android.Provider.ContactsContract.Contacts.InterfaceConsts.Id},
Android.Provider.ContactsContract.Contacts.InterfaceConsts.DisplayName + "='" + name + "'",
null,
null);
if(cursor!=null){
int count = 0;
while(cursor.MoveToNext()){
//string phone;
//id = cursor.GetString(cursor.GetColumnIndex(Android.Provider.ContactsContract.Contacts.InterfaceConsts.Id));
//System.Diagnostics.Debug.WriteLine(name + ":" + id);
count ++;
}
if(count>1){
return id;
}else{
if(cursor.MoveToFirst()){
id = cursor.GetString(cursor.GetColumnIndex(Android.Provider.ContactsContract.Contacts.InterfaceConsts.Id));
System.Diagnostics.Debug.WriteLine(name + ":" + id);
}
}
}
}catch(Exception e){

}
return id;
}

}
}


View Code
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: