رفتن به مطلب
  • 0

كار با مخاطبان


mehrad

سوال

با سلام 

دوستان من ميخوام مخاطباي گوشي رو توي فايل vcf ذخيره كنم توي حافظه تلفن 

ميتونين راهنمايي كنين ؟

لینک ارسال
به اشتراک گذاری در سایت های دیگر

7 پاسخ به این سوال تاکنون داده شده است

ارسال‌های توصیه شده

تو فایل های تکست و اکسل میشه ولی vcf فک نکنم ، لایبرری مخصوصش لازمه تا بشه در یک فایل vcf نوشت ، چون فایلهای

vcf فرمت مخصوصی دارن.

لینک ارسال
به اشتراک گذاری در سایت های دیگر

کسی بلد باشه جواب میده هموطن.

به صورت زیر عمل کنید. اول کتابخونه javaobject رو تیک بزنید.

متدهای زیر رو به اکتیویتیتون اضافه کنید. دقیقا چیزی رو که نوشتیم کپی پیست کنید.

import android.content.Context;
import android.content.res.AssetFileDescriptor;
import android.database.Cursor;
import android.net.Uri;
import android.os.Environment;
import android.provider.ContactsContract;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import anywheresoftware.b4a.BA;
private ArrayList<String> vCard;
private Cursor cursor;

    public void saveToVcf(String vfilename)  {
        vCard = new ArrayList<>();
        cursor = BA.applicationContext.getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, null, null, null);
        if (cursor != null && cursor.getCount() > 0) {
            int i;
            String storage_path = Environment.getExternalStorageDirectory().toString() + File.separator + vfilename + ".vcf";
            FileOutputStream mFileOutputStream = null;
            try {
                mFileOutputStream = new FileOutputStream(storage_path, false);
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            }
            cursor.moveToFirst();
            for (i = 0; i < cursor.getCount(); i++) {
                get(cursor, BA.applicationContext);
                cursor.moveToNext();
                try {
                    mFileOutputStream.write(vCard.get(i).getBytes());
            } catch (IOException e) {
                e.printStackTrace();
            }
            }
           try {
                mFileOutputStream.close();
              cursor.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
           
        }
    }

    public void get(Cursor cursor, Context context) {
        String lookupKey = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.LOOKUP_KEY));
        Uri uri = Uri.withAppendedPath(ContactsContract.Contacts.CONTENT_VCARD_URI, lookupKey);
        AssetFileDescriptor fd;
        try {
            fd = context.getContentResolver().openAssetFileDescriptor(uri, "r");

            FileInputStream fis = fd.createInputStream();
            byte[] buf = new byte[(int) fd.getDeclaredLength()];
            fis.read(buf);
            String vcardstring = new String(buf);
            vCard.add(vcardstring);
        } catch (Exception e1) {
            e1.printStackTrace();
        }
    }

و در نهایت به صورت زیر همه ی مخاطبین رو توی یه فایل vcf توی حافظه ذخیره کنید.

 Dim jo As JavaObject
jo.InitializeContext.RunMethod("saveToVcf",Array As Object("mycontact"))

دسترسی های زیر رو هم حتما اضافه کنید.

 

"android.permission.WRITE_CONTACTS"
"android.permission.READ_CONTACTS"
"android.permission.WRITE_EXTERNAL_STORAGE" 
لینک ارسال
به اشتراک گذاری در سایت های دیگر

آموزشهای مربوط به جاوا آبجکت رو ببینید حتما عزیز.

براتون کتابخونه و سورسشو نوشتم. دانلود و استفاده کنید.

PrContact.rar

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در 27 دقیقه قبل، محمدرضا شاهپیری گفته است :

آموزشهای مربوط به جاوا آبجکت رو ببینید حتما عزیز.

براتون کتابخونه و سورسشو نوشتم. دانلود و استفاده کنید.

PrContact.rar

با تشكر از پاسخدهي شما 

ممكنه سورس رو هم بدين اين فقط كتابخونست

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در 2 ساعت قبل، mehrad گفته است :

با تشكر از پاسخدهي شما 

ممكنه سورس رو هم بدين اين فقط كتابخونست

سورس هم همراهشه عزیز

لینک ارسال
به اشتراک گذاری در سایت های دیگر

بایگانی شده

این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.

  • کاربران آنلاین در این صفحه   0 کاربر

    • هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.
×
×
  • اضافه کردن...