Android 从我的应用程序的listview导出联系人

Android 从我的应用程序的listview导出联系人,android,Android,我只想将选中的联系人作为vcf文件复制到sd卡 有没有办法将选中的联系人从列表视图复制到SD卡?我已经制作了一个应用程序,可以从“联系人”菜单导出联系人,但我想从列表视图导出联系人,并且这些联系人是已选中的联系人。请提供帮助。我必须提交一个项目 itemsSelected = "Selected items: \n"; for (int i = 0; i < lstContacts.getCount(); i++) { view = lstContacts.getChildAt(i

我只想将选中的联系人作为vcf文件复制到sd卡

有没有办法将选中的联系人从列表视图复制到SD卡?我已经制作了一个应用程序,可以从“联系人”菜单导出联系人,但我想从列表视图导出联系人,并且这些联系人是已选中的联系人。请提供帮助。我必须提交一个项目

itemsSelected = "Selected items: \n";
for (int i = 0; i < lstContacts.getCount(); i++) {
    view = lstContacts.getChildAt(i);                   
    check=   (CheckBox)view.findViewById(R.id.cb2);
    if (check.isChecked()) {
        itemsSelected += lstContacts.getItemAtPosition(i) + "\n";
    }
}
itemsSelected=“所选项目:\n”;
对于(int i=0;i
我终于找到了这个问题的答案。 在这里,lv是listview中的联系人列表。只需复制此代码,您就可以检查要复制到sd卡的联系人

long [] ids = lv.getCheckedItemIds();
         for(long id : ids) {
             Cursor phones = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, 
                     ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = ?", new String[] { id + "" }, null);

phones.moveToFirst();
for(int i =0;i<phones.getCount();i++)
{
  String lookupKey =    phones.getString(phones.getColumnIndex(ContactsContract.Contacts.LOOKUP_KEY));
 Uri uri = Uri.withAppendedPath(ContactsContract.Contacts.CONTENT_VCARD_URI, lookupKey);
AssetFileDescriptor fd;
 try 
 {

     fd = this.getContentResolver().openAssetFileDescriptor(uri, "r");
     fis = fd.createInputStream();
     byte[] buf = new byte[(int) fd.getDeclaredLength()];
     fis.read(buf);
     String VCard = new String(buf);


     //private File mPath = new File(Environment.getExternalStorageDirectory() + "//yourdir//");
      sdCard =new File(Environment.getExternalStorageDirectory() + "//yourdir//");
      directory = new File (sdCard.getAbsolutePath());
     directory.mkdirs();
     file = new File(directory, vfile);




     // String path = Environment.getExternalStorageDirectory().toString() + File.separator + vfile;
     FileOutputStream mFileOutputStream = new FileOutputStream(file,true);
     mFileOutputStream.write(VCard.toString().getBytes());        

     phones.moveToNext(); 
    //Log.d("Vcard",  VCard);
 } 
 catch (Exception e1) 
 {
      // TODO Auto-generated catch block
      e1.printStackTrace();
 }

 }}
Toast.makeText(this, "contacts copied to  " + vfile, 
       Toast.LENGTH_SHORT).show();
long[]ids=lv.getCheckedItemIds();
用于(长id:id){
游标phones=getContentResolver().query(ContactsContract.CommonDataTypes.Phone.CONTENT\u URI,null,
ContactsContract.CommonDataTypes.Phone.CONTACT_ID+“=?”,新字符串[]{ID+”},null);
moveToFirst();

对于(int i=0;iYes),您可以将它们保存在sd卡上的csv/txt文件中。我们如何添加它们?您可以详细说明吗?在这里您将找到您的答案到目前为止您做了什么?首先您尝试将其发布到这里,然后我们将帮助您。如果不尝试,您如何期待帮助?在上面的评论中,我给了您提示,谷歌仍然无法解决。我将帮助您