问题现象

导入号码格式核心代码如下,其中参数 defaultFormattingType 设置为 FORMAT_NANP

最终得到号码为1-558-888-6666,参数设置为 FORMAT_JAPAN 则正常

        String source = "15588886666";//normalint defaultFormattingType = PhoneNumberUtils.FORMAT_JAPAN;//bug
//        int defaultFormattingType = PhoneNumberUtils.FORMAT_NANP;final SpannableStringBuilder text = new SpannableStringBuilder(source);PhoneNumberUtils.formatNumber(text, defaultFormattingType);String phone = text.toString();Log.d("Provision","phone="+phone);

解决办法

frameworks/opt/vcard/java/com/android/vcard/VCardUtils.java

    public static int getPhoneNumberFormat(final int vcardType) {if (VCardConfig.isJapaneseDevice(vcardType)) {return PhoneNumberUtils.FORMAT_JAPAN;} else {// return PhoneNumberUtils.FORMAT_NANP;//cczheng fix import phone with - bugreturn PhoneNumberUtils.FORMAT_JAPAN;}}

导入 vcf 联系人调用代码如下

 private void importVCard(){File file = new File("/sdcard/test.vcf");Uri uriProvider = FileProvider.getUriForFile(this, "xxxxx.fileprovider", file);//Uri uriFile = Uri.fromFile(file);Intent intent = new Intent(Intent.ACTION_VIEW);intent.setDataAndType(uri, "text/x-vcard");startActivity(intent);}

可以看到实际上跳转系统界面去导入,经过查找发现跳转的目的地就是 Contacts 应用,如果安装了其它联系人应用比如谷歌 contact,
会弹框提示要选用那一个。高版本安卓系统,不能直接访问 sdcard 文件,传递 uri 也是无用的,若要不跳转 Contact 界面中再去手动选择
vcf 文件,则将 Contacts 改为 uid system 属性即可

packages\apps\Contacts\AndroidManifest.xml

        <!-- vCard related --><activityandroid:name=".vcard.ImportVCardActivity"android:configChanges="orientation|screenSize|keyboardHidden"android:exported="true"android:theme="@style/BackgroundOnlyTheme"><intent-filter><action android:name="android.intent.action.VIEW"/><data android:mimeType="text/directory"/><data android:mimeType="text/vcard"/><data android:mimeType="text/x-vcard"/><category android:name="android.intent.category.DEFAULT"/></intent-filter></activity>

具体流程如下

Contact
|
|----传递 vcf 文件 uri 至 ImportVCardActivity
|----解析构造 ImportRequest 后 VCardService 调用 handleImportRequest 处理
|----实际通过线程 ImportProcessor 调用 runInternal() 转至下方 vcard

vcard
|
|----VCardEntryConstructor onEntryStarted
|----VCardEntry addPhone
|----VCardUtils getPhoneNumberFormat
|----PhoneNumberUtilsPort formatNumber

android12.0(S) 从SD卡导入vCard文件到通讯录 号码带“-“ 如何把横线去除相关推荐

  1. WINCE6.0+S3C6410基于SD卡启动

    ********************************LoongEmbedded******************************** 作者:LoongEmbedded(kandi ...

  2. 电脑端如何访问手机SD卡中的文件

    看到标题,估计各位看官有点懵,访问SD卡中的文件,你连上数据线不就行了,或者说你想要获取一些数据,你用及时通讯(微信,钉钉,QQ等等),在线传输不就行了,这些都可以的啊,有什么难的吗?哎,各位小老弟, ...

  3. android 访问存储卡,Android:无法访问存储在SD卡中的文件

    我正在研究一个读取存储在SD卡(内部/数据/本地)中的.txt文件的应用程序.我遇到的问题是,它似乎可以访问文件路径,但它不能访问文件本身(尽管它具有读取和写入权限),但会引发FileNotFound ...

  4. lwip-2.1.3自带的httpd网页服务器使用教程(一)从SD卡读取网页文件并显示

    概述 本教程使用的单片机是STM32F103ZE,有线网口芯片为ENC28J60. 本教程里面的网页由于需要兼容Windows XP系统的IE8浏览器,所以采用HTML 4.01编写,不使用任何前端框 ...

  5. sd卡中的文件夹删除了怎么恢复,SD卡删除的文件如何恢复

    据统计,现如今SD卡的使用频率非常高,为手机扩展内存.放在相机中保存照片等等,SD卡的内存也越来越大,而里面的数据储存量也多了起来,那么当SD卡中文件删除了怎么办呢?SD卡删除的文件如何恢复? 得力数 ...

  6. android 删除sd卡文件恢复,终于解决sd卡删除的文件如何恢复问题

    据统计,现如今SD卡的使用频率非常高,为手机扩展内存.放在相机中保存照片等等,SD卡的内存也越来越大,而里面的数据储存量也多了起来,那么当SD卡中文件删除了怎么办呢?SD卡删除的文件如何恢复? 迅龙数 ...

  7. sd卡删除的文件如何恢复

    sd卡删除的文件如何恢复?当我们遭遇了数据丢失,首先要保证SD卡的数据不被覆盖,很多用户会选择格式化.接下来数据蛙数据恢复专家就为大家演示几种恢复SD卡删除的数据的方法. 方法一:修改命令符,修复SD ...

  8. 如何访问嵌入式设备sd卡上的文件

    sd卡上的文件属于硬件上真实的文件,想要访问必需先挂载. 1.检测系统有无自动挂载   命令:cat /proc/mounts 如果自动挂载成功会显示这样 /dev/mmcblk1p1 是sd卡位置, ...

  9. SD卡里面的文件夹无法访问也打不开文件的寻回办法

    SD卡虽然使用很方便,可随时拷贝资料到任何有电脑的地方,但它的问题也是比较多的,其中SD卡提示文件夹无法访问故障最让人心虚,因为已经无法打开SD卡了,里面的资料怎么办,很重要的怎么办,所以今天就教大家 ...

  10. 解决Android Studio读取不了SD卡上的文件

    问题: 上课要求练习操作SD卡上的文件,界面如图所示,要求点击保存按钮会出现success的toast,并可以读取文件内容.但是我一直出现的都是failure,原因是不能执行这句代码:Environm ...

最新文章

  1. 关于计算机读研的小建议
  2. 遭遇“生活天花板”,如何用 OKR 弯道超车?
  3. Scrapy002-框架安装
  4. Double Free浅析(泄露堆地址的一种方法)
  5. 使用Lucene的新FreeTextSuggester查找长尾建议
  6. 平衡小车卡尔曼滤波算法
  7. Intel的AVX2指令集解读
  8. 2021年游戏项目的十大编程语言:C++、Java、C#均上榜
  9. android 编译 libjpeg-turbo,编译Android环境的libjpeg-turbo
  10. 基于MATLAB函数mesh绘制由多张曲面围成的三维封闭曲面详解
  11. 智慧应急 科学管理:打造园区安全智慧大脑
  12. 浅谈显著性检测!真的很浅
  13. matlab怎么设置步长,请教matlab中怎么对变步长的数据进行处理
  14. 基于Java坦克大战小游戏设计(3)
  15. faster rcnn:towards real-time object detection with region proposal network
  16. 实现语音视频录制(demo源码)
  17. flutter集成Apple第三方登录
  18. python中 math.isfinite返回值为false_Python math.isfinite() 方法
  19. 【苹果相册推】软件安装ipv6得到可由Apple使用ArrayList tmpMacList
  20. 淘宝商品详情接口,淘宝详情页接口,宝贝详情页接口,商品属性接口,商品信息查询,商品详细信息接口,h5详情,淘宝APP详情

热门文章

  1. 协调世界时--UTC
  2. 手机号码变成空号导致亚马逊账号登陆两步验证失败的恢复网址及方法
  3. PHP性能 - php_performance - by llia alshanetsky
  4. 客户关系管理 数据库设计案例
  5. 科普 | Cat.1bis 你懂了么
  6. 《BiLSTM with Multi-Polarity Orthogonal Attention for Implicit Sentiment Analysis》论文阅读笔记
  7. 东南大学计算机系分数,2017最新东南大学专业排名及分数线
  8. Unable to find instance for XXXX
  9. 计算机防勒索病毒需求分析
  10. 【基于canvas实现雪花飘落】