十三、AOSP-通讯录导入

一、vcf文件制作

BEGIN:VCARD
VERSION:2.1
N:cc;ff;;;
FN:ff cc
TEL;CELL:1-375-667-8808
END:VCARD

二、adb导入方法

  • 将制作好的vcf文件“contacts.vcf”保存到sd的Music目录下
  • 运行如下adb命令
adb shell am start --user 0 -t "text/x-vcard" -d "file:///storage/emulated/0/Music/contacts.vcf" -a android.intent.action.VIEW com.android.contacts

三、删除导入的提示

  • 调用adb命令后,我们发现会弹出一个确认框,点击确认后才会开始导入
  • 确认框提示“Import contacts from vCard?”
  • 这时候我们到源码路径“packages/apps/Contacts/res/values/strings.xml”下找到这个提示
    <!-- Dialog message asking the user for confirmation before starting to import contacts from a .vcf file. [CHAR LIMIT=NONE] -->
    <string name="import_from_vcf_file_confirmation_message">Import contacts from vCard?</string>
  • 然后到“packages/apps/Contacts/src”下搜索“import”,我们发现“ImportVCardDialogFragment.java”中调用了“import_from_vcf_file_confirmation_message”在这里插入图片描述
    在这里插入图片描述
  • 接下来,我们到“packages/apps/Contacts/src/com/android/contacts/vcard/ImportVCardActivity.java“中,发现了这个导入窗的弹出调用
    • 我们可以看到isCallerSelf是判断是否是系统自己的package调用
    • 这时候我们就找到了不需要确认框就能直接导入的方法了
        if (isCallerSelf(this)) {
            startImport(sourceUri, sourceDisplayName);
        } else {
            ImportVCardDialogFragment.show(this, sourceUri, sourceDisplayName);
        }
  • 修改源码:else中也直接开始导入即可
        if (isCallerSelf(this)) {
            startImport(sourceUri, sourceDisplayName);
        } else {
            //zjp update
            startImport(sourceUri, sourceDisplayName);
            //ImportVCardDialogFragment.show(this, sourceUri, sourceDisplayName);
        }
  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

无休止符

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值