80,337
社区成员
发帖
与我相关
我的任务
分享
/**
* 查询分组的联系人方法 groupID是分组的id
*
* @param groupID
* @return
*/
private List<Long> getContactsIDsByGroup(long groupID) {
List<Long> list = new ArrayList<Long>();
// 思路 我们通过组的id 去查询 RAW_CONTACT_ID, 通过RAW_CONTACT_ID去查询联系人
// 要查询得到 data表的Data.RAW_CONTACT_ID字段
String RAW_CONTACTS_WHERE = CommonDataKinds.GroupMembership.GROUP_ROW_ID
+ "=?"
+ " and "
+ ContactsContract.Data.MIMETYPE
+ "="
+ "'"
+ CommonDataKinds.GroupMembership.CONTENT_ITEM_TYPE + "'";
// 通过分组的id outid;查询得到RAW_CONTACT_ID
Cursor cursor = resolver.query(Data.CONTENT_URI,
new String[] { Data.RAW_CONTACT_ID }, RAW_CONTACTS_WHERE,
new String[] { "" + groupID }, "data1 asc");
while (cursor.moveToNext()) {
// RAW_CONTACT_ID
long contactId = cursor.getLong(0);
list.add(contactId);
}
cursor.close();
return list;
}
//查询一个分组下联系人的详细信息.xupangpang
@SuppressWarnings("unused")
public List<ConnectEntry> queryLocalConnectGroupList(long groupID){
List<Long> contactIDS = getGroupContactIDs(groupID);
List<ConnectEntry> subList = new ArrayList<ConnectEntry>();
List<ConnectEntry> list=queryLocalConnectLists(false,null);
for (int i = 0; i < contactIDS.size(); i++) {
ConnectEntry connectEntry = new ConnectEntry();
for (int j = 0; j < list.size(); j++) {
if (contactIDS.get(i).equals(list.get(j).getContactid())){
connectEntry.setContactid(list.get(j).getContactid());
connectEntry.setGroupID(groupID);
connectEntry.setGroupName("");
connectEntry.setUserName(list.get(j).getUserName());
connectEntry.setTelePhoneNum(list.get(j).getTelePhoneNum());
subList.add(connectEntry);
}
}
}
return subList;
}
package cn.wangan.contact.utils;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.SharedPreferences;
import cn.wangan.contact.dbhelp.ShowMyMainOperatorHelpor;
import cn.wangan.contact.entry.ConnectEntry;
public class ShowUnitsContactExportHelpor implements Serializable {
/**
* 读TXT文件
*/
private static final long serialVersionUID = 1L;
/**
* 创建其progressdialog 的进度条
*/
public void doCreateProgressDialog(Context context,SharedPreferences shared) {
String versionName = ""; // 版本号
final ProgressDialog dialog = new ProgressDialog(context);
dialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
dialog.setTitle("单位通讯录导入");
dialog.setIndeterminate(false);
dialog.setCancelable(false);
final List<String> groupList = new ArrayList<String>();
final List<ConnectEntry> connectList = new ArrayList<ConnectEntry>();
String groupName = "";
try {
InputStream inputStream = context.getAssets().open("vcf0001.txt");
if(inputStream == null){
ToastHelpor.shortToast(context, "为能找到相应的数据库文件更新");
return;
}
BufferedReader br = new BufferedReader(new InputStreamReader(
inputStream, "gbk"));
String count = null;
while ((count = br.readLine()) != null) {
if (count.contains(":")) {
versionName = count.split(":")[1];
if(versionName.equals(shared.getString("VERSION_NAME", "135"))){
return;
}
} else if (count.contains(" ")) {
ConnectEntry entry = new ConnectEntry();
entry.setUserName(count.split(" ")[0]);
entry.setTelePhoneNum(count.split(" ")[1]);
entry.setGroupName(groupName);
connectList.add(entry);
} else {
groupName = count;
groupList.add(count);
}
count = null;
}
br.close();
inputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
// 设置其相应的版本
final ShowMyMainOperatorHelpor helpor = new ShowMyMainOperatorHelpor(context);
shared.edit().putString("VERSION_NAME", versionName).commit();
final int values = connectList.size();
dialog.setMax(values);
dialog.show();
new Thread() {
@Override
public void run() {
helpor.insertUnitsDataGroup(groupList, connectList);
for (int i = 0; i < values; i++) {
helpor.insertUnitsDataEntry(connectList.get(i));
dialog.setProgress(i+1);
}
dialog.dismiss();
};
}.start();
}
}
package cn.wangan.contact.dbhelp;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
/**
*创建数据库
*/
public class SqliteDBHelpor extends SQLiteOpenHelper {
public SqliteDBHelpor(Context context) {
super(context, "wa_contacts.db", null, 1);
}
@Override
public void onCreate(SQLiteDatabase db) {
String sql = "create table wa_contacts(id integer primary key autoincrement," +
"userName varchar(50),telePhone varchar(100),groupID integer,groupName varchar(50)," +
"keySearch varchar(50), shortKeySearch varchar(10))";
db.execSQL(sql);
String sqlString = "create table wa_contacts_group(id integer primary key autoincrement," +
"groupName varchar(50),createTime varchar(20))";
db.execSQL(sqlString);
// String localSql = "create table wa_local_contacts(id integer primary key autoincrement," +
// "contactId long,telePhone varchar(100))";
// db.execSQL(localSql);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS wa_contacts");
db.execSQL("DROP TABLE IF EXISTS wa_contacts_group");
onCreate(db);
}
}