package
cn.m15.helper.logic;
import
java.io.File;
import
java.io.FileInputStream;
import
java.io.FileOutputStream;
import
android.content.ContentResolver;
import
android.content.Context;
import
android.content.Intent;
import
android.content.res.AssetFileDescriptor;
import
android.database.Cursor;
import
android.net.Uri;
import
android.os.Environment;
import
android.provider.ContactsContract;
public
class ContactsSyncer extends
Syncer {
public
void backup(Context context) {
ContentResolver cr = context.getContentResolver();
Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI,
null,
null,
null, null);
int
index = cur.getColumnIndex(ContactsContract.Contacts.LOOKUP_KEY);
FileOutputStream fout;
try
{
fout =
new FileOutputStream(
Environment.getExternalStorageDirectory() +
"/go.vcf");
byte[] data =
new byte[1024
* 1];
while
(cur.moveToNext()) {
String lookupKey = cur.getString(index);
Uri uri = Uri.withAppendedPath(
ContactsContract.Contacts.CONTENT_VCARD_URI, lookupKey);
AssetFileDescriptor fd = context.getContentResolver()
.openAssetFileDescriptor(uri,
"r");
FileInputStream fin = fd.createInputStream();
int
len = -1;
while
((len = fin.read(data)) != -1) {
fout.write(data,
0, len);
}
fin.close();
}
fout.close();
}
catch (Exception e) {
e.printStackTrace();
}
}
public
void restore(Context context, String filename) {
Intent intent =
new Intent();
intent.setPackage("com.android.contacts");
Uri uri = Uri.fromFile(new
File(filename));
intent.setAction(Intent.ACTION_VIEW);
intent.setDataAndType(uri,
"text/x-vcard");
context.startActivity(intent);
}
}