Android 導出聯系人為 vCard(.vcf)

有時需要將聯系人數據導出為可共享的標準格式:

vCard(.vcf)格式,可被系統直接導入通訊錄

一、導出聯系人為 vCard(.vcf)

? 支持字段

我們支持導出的字段包括:

  • 姓名

  • 個人電話

  • 家庭電話

  • 工作電話

  • 郵箱

  • 備注(note)

  • 組織機構(org)

? Contact 數據模型

 public static class Contact {private String Name;private String phone;private String email;private String org;private String note;private String homePhone;private String workPhone;get set 省略
}

? 導出方法

 public static boolean exportVaf(Context context, List<Contact> contactList) {StringBuilder sb = new StringBuilder();for (Contact c : contactList) {sb.append("BEGIN:VCARD\n").append("VERSION:3.0\n");if (!TextUtils.isEmpty(c.getName())) {sb.append("FN:").append(c.getName()).append("\n");}if (!TextUtils.isEmpty(c.getPhone())) {sb.append("TEL;TYPE=CELL:").append(c.getPhone()).append("\n");}if (!TextUtils.isEmpty(c.getHomePhone())) {sb.append("TEL;TYPE=HOME,VOICE:").append(c.getHomePhone()).append("\n");}if (!TextUtils.isEmpty(c.getWorkPhone())) {sb.append("TEL;TYPE=WORK,VOICE:").append(c.getWorkPhone()).append("\n");}if (!TextUtils.isEmpty(c.getNote())) {sb.append("NOTE:").append(c.getNote()).append("\n");}if (!TextUtils.isEmpty(c.getEmail())) {sb.append("EMAIL:").append(c.getEmail()).append("\n");}if (!TextUtils.isEmpty(c.getOrg())) {sb.append("ORG:").append(c.getOrg()).append("\n");}sb.append("END:VCARD\n");}try {File file = new File(context.getExternalFilesDir(null), "聯系人.vcf");if (file.exists()) {file.delete();}FileOutputStream fos = new FileOutputStream(file);fos.write(sb.toString().getBytes(StandardCharsets.UTF_8));fos.close();Log.d("導出文件", "導出成功  path:" + file.getPath());return true;} catch (Exception e) {e.printStackTrace();}return false;}

? 使用方法

  new Thread(new Runnable() {@Overridepublic void run() {List<ExportFile.Contact> contacts = new ArrayList<>();for (int i = 0; i < 10; i++) {ExportFile.Contact contact = new ExportFile.Contact();contact.setName("Name" + i);contact.setPhone("123 " + i);contact.setHomePhone("1234 " + i);contact.setWorkPhone("12345 " + i);contact.setEmail("1531352222@163.com");contact.setNote("備注 " + i);contact.setOrg("組織結構 " + i);contacts.add(contact);}boolean result = ExportFile.exportVaf(ActivityLianXiRen.this, contacts);}}).start();

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/92774.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/92774.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/92774.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

大模型-bacth之chunked prefills

一、chunked prefills 1.1 chunked prefills核心思想 ORCA雖然很優秀&#xff0c;但是依然存在兩個問題&#xff1a;GPU利用率不高&#xff0c;流水線依然可能導致氣泡問題。 我們來看sarathi-serve做的一個實驗。左右兩圖分別刻畫了在不同的batch size下&#xff0c;prefil…

multiprocessing模塊使用方法(一)

結合Python代碼示例說明multiprocessing模塊的使用方法、Linux啟動命令、服務部署及真實應用場景&#xff1a;一、multiprocessing基礎用法 Python的multiprocessing模塊通過創建子進程實現并行計算&#xff0c;核心步驟如下&#xff08;引用&#xff09;&#xff1a;創建進程對…

vector如何判斷應該擴容?

std::vector 的擴容機制是 C 容器性能優化的一個核心點。它的判斷標準、行為特征和實現細節如下所示&#xff1a;? 一、vector 的核心結構 std::vector 內部維護三個指針&#xff1a; begin -> 指向數據起始位置 end -> 指向當前已使用的元素末尾&#xff08;size…

ICMP考點

在網絡工程師、運維工程師、安全工程師等崗位的面試中&#xff0c;??ICMP&#xff08;Internet Control Message Protocol&#xff0c;互聯網控制報文協議&#xff09;?? 是高頻必考知識點。ICMP作為IP協議的“輔助協議”&#xff0c;雖然不直接傳輸用戶數據&#xff0c;但…

服務器帶寬具體是指什么意思?

企業在選擇服務器租用或托管服務時&#xff0c;需要根據自身的業務情況來選擇合適的服務器帶寬&#xff0c;以便于能夠讓其業務持續穩定的運行工作&#xff0c;做到及時響應用戶的訪問請求&#xff0c;但是很多用戶對于帶寬一詞沒有過多的概念&#xff0c;本文就來探討一下服務…

CANape之ASAP2 Studio介紹

提到ECU的測量標定工具&#xff0c;很多小伙伴第一個想到的就是CANape。但其實&#xff0c;除了強大的測量標定功能之外&#xff0c;CANape還有很多其他功能。例如&#xff0c;CANape中集成的小工具——ASAP2 Studio&#xff0c;其支持對A2L文件&#xff08;由ASAM組織所定義&a…

【debug日記】MONAI SwinUNETR 目標檢測項目調試總結(AI自動總結)

MONAI SwinUNETR 目標檢測項目調試總結 日期: 2025年7月25日 項目: 使用 MONAI&#xff0c;以預訓練的 SwinUNETR 為骨干網絡&#xff0c;微調 RetinaNet 進行3D肺結節檢測。 本文檔旨在記錄在項目配置、數據處理和模型訓練過程中遇到的一系列問題及其解決方案&#xff0c;作為…

AI同傳領域,字節跳動與科大訊飛激戰進行時

在AI同聲傳譯市場&#xff0c;行業巨頭科大訊飛長期占據主導地位&#xff0c;但新晉玩家字節跳動正以迅猛姿態發起挑戰。7月24日&#xff0c;字節旗下火山引擎正式發布豆包同聲傳譯模型 Seed LiveInterpret 2.0&#xff0c;主打“人類級延遲”和“0樣本聲音復刻”&#xff0c;試…

[C++]string::substr

string substr (size_t pos 0, size_t len npos) const;substr() 主要功能是復制&#xff08;截取更準確&#xff09;子字符串&#xff0c;要求從指定位置 pos 開始&#xff0c;并具有指定的長度 len 。如果沒有指定長度或者超出了源字符串的長度&#xff0c;則子字符串將延續…

KNN算法:從原理到實戰全解析

一 算法介紹 K近鄰&#xff08;K-Nearest Neighbors, KNN&#xff09;是一種基于實例的監督學習算法&#xff0c;適用于分類和回歸任務。其核心思想是通過計算待預測樣本與訓練集中樣本的距離&#xff0c;選取距離最近的K個鄰居&#xff0c;根據這些鄰居的標簽進行投票&#xf…

醫療器械:DFEMA和PFEMA

在醫療器械行業&#xff0c;DFMEA&#xff08;Design FMEA&#xff0c;設計失效模式及影響分析&#xff09;和 PFMEA&#xff08;Process FMEA&#xff0c;過程失效模式及影響分析&#xff09;是核心的風險管理工具&#xff0c;旨在通過系統性識別潛在風險、分析影響并采取預防…

Qt 與 SQLite 嵌入式數據庫開發

Qt 與 SQLite 的結合是開發輕量級、跨平臺嵌入式數據庫應用的理想選擇。SQLite 作為一種零配置、文件型數據庫&#xff0c;無需獨立的服務器進程&#xff0c;非常適合集成到 Qt 應用中。本文將深入探討 Qt 與 SQLite 的嵌入式數據庫開發&#xff0c;包括基礎操作、高級特性、性…

Oracle OMF 非OMF 文件 轉化 不需要重建 file#.incarnation#

不需要重建就要重啟&#xff0c; alter database datafile move 就可以在線 file#.incarnation# 是 incarnation 不是dbid Goal How to convert non OMF files to OMF files with ASM storage Datafiles are not deleted at dropping tablespace if files are non-OMF and …

大型微服務項目:聽書——11 Redisson分布式布隆過濾器+Redisson分布式鎖改造專輯詳情接口

11 Redisson分布式布隆過濾器Redisson分布式鎖改造專輯詳情接口 11.1 緩存穿透解決方案&布隆過濾器 緩存穿透解決方案&#xff1a; 布隆過濾器&#xff1a; 布隆過濾器的使用&#xff1a; 11.2 遠程調用查詢所有的專輯id集合 修改&#xff1a; /*** 查詢所有的專輯…

STM32與ADS1220實現多通道數據采集的完整分析和源程序

以下是基于STM32與ADS1220實現多通道數據采集的完整分析和源程序,結合硬件設計、通信協議及軟件優化,提供高精度采集解決方案: 一、系統設計關鍵要點 ADS1220特性 24位高精度ΔΣ ADC,支持4路單端或2路差分輸入 集成PGA(增益1~128)、基準電壓和可編程電流源 多通道限制:…

百特搭AI低代碼平臺助力企業國際化業務敏捷拓展

在全球化浪潮下&#xff0c;企業揚帆出海或服務全球客戶已成為重要戰略。然而&#xff0c;開拓國際市場面臨多重挑戰&#xff1a;語言文化差異顯著、本地化需求復雜多變、智能化應用需求激增、各國IT基礎設施與合規要求各異。企業亟需一個能夠快速響應、靈活適應&#xff0c;并…

epoll_event數據結構及使用案例詳解

epoll_event 數據結構詳解 在 Linux 的 I/O 多路復用機制 epoll 中&#xff0c;epoll_event 是關鍵的數據結構&#xff0c;用于描述文件描述符&#xff08;fd&#xff09;上的事件和關聯數據。其定義在頭文件 <sys/epoll.h> 中&#xff1a; struct epoll_event {uint32_t…

C++11STL容器map和set簡單介紹

一、引言map和set底層結構比較復雜&#xff0c;我認為我們先談基本介紹再談C11&#xff0c;最后再談map和set底層以及map和set封裝。二、簡單介紹一下map和setmap和set底層都是紅黑樹&#xff0c;是二叉搜索樹的一種&#xff0c;查找非常快。不像數組、鏈表一樣一個一個對比&am…

Java線程基礎面試復習筆記

1. 線程與進程的區別進程是正在運行程序的實例&#xff0c;線程是進程中的執行單元。主要區別&#xff1a; 內存空間&#xff1a;不同進程使用不同的內存空間&#xff0c;同一進程下的線程共享內存空間資源開銷&#xff1a;線程更輕量&#xff0c;線程上下文切換成本比進程上下…

面試題(技術面+hr面)

面試技術面HR面后端HR面常見問題*穩定性&#xff0c;上進心&#xff0c;目標感&#xff0c;抗壓能力&#xff0c;學習能力*回答問題時注意體現上面五點&#xff0c;即使瞎扯也盡量往上靠。面經項目相關介紹一下你收獲最大的一個項目你們團隊有多少人&#xff0c;怎么分工的開發…