❶ 有谁知道android系统的通讯录是保存在哪个目录下的
哈哈
我原来跟你一样
是这样的
给你说个方法
你先把你想要的备份一下
然后在设置里,选择应用程序
再选择管理应用程序
再按菜单键,左边起第二个
选择过滤
选择全部
然后找到“联系人”
然后进去
选择清除
就可以把你现在所有的全部彻底删掉
然后你再把你想要的重新导入一遍就可以了~~~~
❷ android通讯录应用需要哪些权限
通讯录需要如下权限:
android读写联系人,读和写权限:
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.WRITE_CONTACTS" />
android权限系统非常庞大,在android系统中做任何操作都需要首先获取android系统权限,以下是android权限大全:
访问网络
android.permission.INTERNET,访问网络连接,可能产生GPRS流量
android.permission.CHANGE_WIFI_STATE Wifi 改变状态
android.permission.ACCESS_WIFI_STATE WiFi 状态
android.permission.ACCESS_NETWORK_STATE 网络状态
❸ 开发Android 通讯录要做哪些工作
首先,你需要知道获取系统联系人需要哪些权限
其次,你要知道你的通讯录想要以什么样的形式存在:既,你的通讯录的设计
最后,整理出设计这个通讯录会使用哪些技术,然后一一弄清楚。
这些准备工作做好了以后,你就可以着手做你想要的通讯录了,加油吧楼主!!
❹ 如何调用android通讯录
这个过程有三步:
1)许可向你的应用程序的manifest中添加读取通讯录数据的许可
<uses-permission android:name="android.permission.READ_CONTACTS"/
2)调用Contact Picker
在你的activity中,创建一个Intent,用来请求系统查找一个能够执行一个从Contacts URI的项目中发出的PICK动作的activity,
Intent intent = new Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI);
调用startActivityForResult在Intent中传递(和一个整数的请求代码,在这个例子中是PICK CONTACT )。这将导致android启动一个已经被等级的activity,用来支持在People.CONTENT URI上的ACTION_PICK ,然后当按下选择(或者取消)的时候返回到这个activity。startActivityForResult(intent, PICK_CONTACT);
3)仍然在你的activity中,重写onActivityResul方法来监听在你的第二个步骤中启动的activi'select a contact' activity的回调。你应该检查反馈的请求代码是否匹配你的期望值,结果代码是否是 RESULT_OK。
通过在数据Intent参数中调用getData()你可以获得选择的联系人的URI。为了获得选择的联系人的名字你需要使用URI从返回的游标中创建一个新的查询和提取的参数。
@Overridepublic void onActivityResult(int reqCode, int resultCode, Intent data) {
super.onActivityResult(reqCode, resultCode, data);
switch (reqCode) {
case (PICK_CONTACT) :
if (resultCode == Activity.RESULT_OK) {
Uri contactData = data.getData();
Cursor c = managedQuery(contactData, null, null, null, null);
if (c.moveToFirst()) {
String name = c.getString(c.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));}}break;}}
❺ 安卓通讯录推荐
QQ同步助手:
360同步助手是一款通讯录同步及通讯录体检于一身的服务软件。一键自动同步您手机中的通讯录,在换机换号的情况下也不用担心数据的丢失。
产品特点描述:
【更便捷】
将手机通讯录一键备份同步到网络,随时同步回手机,让换机、整理更便捷。
【更快速】
采用增量同步及数据压缩技术,保证个人数据快速备份的同时更节省流量。
【更安全】
数字证书加密传输,信息安全可靠,永不丢失。
【更全面】
通讯录一键体检优化,重复联系人、不完整联系人等问题轻松搞定。
号簿助手:
号簿助手是中国电信打造的一款集安全备份、多端同步、通讯增强、便捷生活的通讯助手应用,支持Android、IOS、Brew、Windows Mobile手机客户端。
号簿助手提供一键联系人/短信/通话记录备份、T9急速搜索、便捷短信群发、公共服务电话自动识别、充话费/查号等功能,支持WEB/WAP/手机客户端等多种方式进行联系人的查询、编辑、备份和恢复,是您移动通讯生活的好助手、换机时的好帮手。
❻ 如何把android 中的通讯录导入苹果手机
安卓手机通讯录导入至iPhone中的方法:
1、以小米手机为例,进入“联系人”,点击菜单键选择“导入/导出”;
2、在列表中找到“导出到存储设备”;
3、点击“导出存储设备”后,会弹出询问是否导出联系人,点“确定”即可,默认的导出文件路径是文件管理磁盘的根目录,导出格式为"VCard"格式;
4、进入小米的文件管理列表,找到根目录的.VCF文件,将这个文件发送到电脑,方式有很多种,比较方便的是使用手机QQ和电脑上QQ的文件发送功能。
5、登录icloud ID帐号,在联系人中选择导入刚才生成的VCard。
6、在IPhone登陆icloud ID帐号,打开同步通讯录,通讯录导入完成。
除了小米手机之外其他安卓手机也是同样的思路,将联系人导出为VCard格式文件,上传至iCloud,登陆iPhone ID同步即可。
❼ 如何制作android手机通讯录
这个涉及到java还有安卓调用接口权限以及liunx的东西,不适合你这新手去搞。
跟备份通信录一样打开联系人。
按菜单键调出通信录编辑菜单。在这一步之前要把先前导出的通信录文件放到内置SD卡中
选择:从SD卡导入。
系统开始自动寻找内置SD卡中的vcf格式的通信录文件。
系统找到以后,会弹出一个选择窗口(如果有多个通信录备份文件),为了不出现差错,选择“导入电子名片文件”。
我的SD卡中有两个备份文件,这里就选择第一个就好了。选择好后点确定。
手机开始导入联系人,等进度条走完即可。
❽ android 通讯录 怎么改联系人
通过getContentResolver()得到ContentResolver
后,我们就可以通过该对象的delete,insert,updata,query等方法间接操作联系人数据库,那么,如果我们删除某些联系人,以ContactsContract.RawContacts.CONTENT_URI为例,怎么做,先来看下源码:
首先,ContentResolver调用delete();删除操作从红色部分开始
@Override
public int delete(Uri uri, String selection, String[] selectionArgs) {
waitForAccess();
return super.delete(uri, selection, selectionArgs);
}
上面的super.delete(uri, selection, selectionArgs)调用父亲方法
@Override
public int delete(Uri uri, String selection, String[] selectionArgs) {
int count = 0;
boolean applyingBatch = applyingBatch();
if (!applyingBatch) {
mDb = mOpenHelper.getWritableDatabase();
mDb.beginTransactionWithListener(this);
try {
count = deleteInTransaction(uri, selection, selectionArgs);
if (count > 0) {
mNotifyChange = true;
}
mDb.setTransactionSuccessful();
} finally {
mDb.endTransaction();
}
onEndTransaction();
} else {
count = deleteInTransaction(uri, selection, selectionArgs);
if (count > 0) {
mNotifyChange = true;
}
}
return count;
}
父类回调deleteInTransaction(uri, selection, selectionArgs);删除联系人操作在这里进行。
//该方法对uri进行匹配来执行相应的删除操作,并且是在事务中完成的,,比如
//content://com.android.contacts/contacts
//content://com.android.contacts/contacts/#
// .......................................................省略
@Override
protected int deleteInTransaction(Uri uri, String selection, String[] selectionArgs) {
.......................................................
.......................................................
//我们可以在uri中的authority部分可带可选的参数ContactsContract.CALLER_IS_SYNCADAPTER
//比如uri字符串可以写成content://com.android.contacts?ContactsContract.CALLER_IS_SYNCADAPTER=true
// ContactsContract.CALLER_IS_SYNCADAPTER默认是false的,他告诉同步适配器如何执行删除操作。
//如果设置为true,则delete的时候直接删除联系人,否则,默认delete时是不会立即删除RawContacts中的数据的,
//只是把RawContacts.DELETED标志位设置为1,从它的aggregate contact中移除该raw contact,即显示联系人时不显示它的内容
//同步联系人时,删除服务器上的raw contact,最终删除手机上已
//标记为DELETED为1的raw contacts
final boolean callerIsSyncAdapter = readBooleanQueryParameter(uri, ContactsContract.CALLER_IS_SYNCADAPTER, false);
final int match = sUriMatcher.match(uri);
switch (match) {
.......................................................
.......................................................
.......................................................
case CONTACTS: {//uri为content://com.android.contacts/contacts,目录(dir)类型
// TODO
return 0;
}
case CONTACTS_ID: {//删除某一个联系人,uri指定了ContactsContract.Contacts中的字段contact_id,Item类型
long contactId = ContentUris.parseId(uri);//得到该给定联系人数据集的id
return deleteContact(contactId);
}
.......................................................
.......................................................
.......................................................
case RAW_CONTACTS: {
int numDeletes = 0;
Cursor c = mDb.query(Tables.RAW_CONTACTS, new String[]{RawContacts._ID},
appendAccountToSelection(uri, selection), selectionArgs, null, null, null);
try {
while (c.moveToNext()) {
final long rawContactId = c.getLong(0);
numDeletes += deleteRawContact(rawContactId, callerIsSyncAdapter);
}
} finally {
c.close();
}
return numDeletes;
}
case RAW_CONTACTS_ID: {
final long rawContactId = ContentUris.parseId(uri);
return deleteRawContact(rawContactId, callerIsSyncAdapter);
}
case DATA: {
mSyncToNetwork |= !callerIsSyncAdapter;
return deleteData(appendAccountToSelection(uri, selection), selectionArgs,
callerIsSyncAdapter);
}
case DATA_ID:
case PHONES_ID:
case EMAILS_ID:
case POSTALS_ID: {
long dataId = ContentUris.parseId(uri);
mSyncToNetwork |= !callerIsSyncAdapter;
return deleteData(Data._ID + "=" + dataId, null, callerIsSyncAdapter);
}
.......................................................
.......................................................
.......................................................
}
}
public int deleteRawContact(long rawContactId, boolean callerIsSyncAdapter) {
if (callerIsSyncAdapter) {
mDb.delete(Tables.PRESENCE, PresenceColumns.RAW_CONTACT_ID + "=" + rawContactId, null);
//直接删除数据
return mDb.delete(Tables.RAW_CONTACTS, RawContacts._ID + "=" + rawContactId, null);
} else {
//从他关联的aggregate contact移除该数据
mDbHelper.removeContactIfSingleton(rawContactId);
//标记为已删除,但不是立即删除数据
return markRawContactAsDeleted(rawContactId);
}
}
综上,我们要删除联系人可以这样做:
1)删除单个联系人:
CR.delete(ContactsContract.RawContacts.CONTENT_URI,ContactsContract.RawContacts_id + "=" + delRawId);
2)删除全部联系人:
getContentResolver().delete(Uri.parse(ContactsContract.RawContacts.CONTENT_URI.toString() +"?" + ContactsContract.CALLER_IS_SYNCADAPTER+"=true"), ContactsContract.RawContacts._ID + ">0", null));
数据索引从1开始,所以只要id>0就可以全部删除raw contact记录,上面的删除操作是立即进行的,因为我们设置了true.