一、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”下找到这个提示
< 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) ;
}
if ( isCallerSelf ( this ) ) {
startImport ( sourceUri, sourceDisplayName) ;
} else {
startImport ( sourceUri, sourceDisplayName) ;
}