问题描述
在使用OnePlus One手机时,进行了adb备份,并成功恢复了短信历史。但在尝试恢复通话记录时遇到了困难。用户不确定应该从哪个文件夹恢复通话记录,也无法确定应将通话记录恢复到哪个位置。虽然用户已经确认通话记录数据库位于 /data/data/com.android.providers.contacts/databases/
文件夹中,但他无法找到相应的备份文件夹,因此询问是否有其他方法来恢复通话记录。
解决方案
方案1
注意
请留意以下操作可能存在的版本差异,请在执行前做好备份。
解决步骤
根据开发者在CM11版本中所做的更改,通话记录并未被包含在ADB备份中。具体原因如下:
- 查看源码
- CM11版本的
Telephony Provider
(电话提供者)去掉了android:allowBackup="false"
这个标志,而Contacts Provider
(联系人提供者)保留了这个标志。 Telephony Provider
用于存储短信和通话记录,Contacts Provider
用于存储联系人和通话记录。默认情况下,ADB不会备份这些私有内容,除非设置了
android:allowBackup="true"
。检查ADB备份
- 检查你的ADB备份文件夹,确认其中是否包含
Telephony Provider
的数据库文件。 如果备份中确实包含了
Telephony Provider
的数据库文件,那么你可以尝试将这些文件恢复到新设备的相应位置。恢复步骤
- 打开终端,使用以下命令将备份文件恢复到新设备:
sh
adb push /path/to/backup/file /data/data/com.android.providers.telephony/databases/ 确保目标文件夹的权限设置正确,以便新设备可以访问这些文件。
重启设备
- 恢复完成后,重启设备以应用更改。
方案2
注意
此方法可能需要更多的手动操作,并且需要确保通话记录数据库的路径正确无误。
解决步骤
如果ADB备份中确实没有包含通话记录数据库,可以考虑使用其他方法来恢复通话记录。例如,使用Google的联系人同步功能来恢复通话记录。
- 使用Google联系人同步
- 登录你的Google账号,确保联系人和通话记录已同步到Google云端。
- 在新设备上安装Google联系人应用,然后登录你的Google账号。
应用会自动从云端同步联系人和通话记录。
检查设备上的其他备份
- 检查设备上的其他备份方法,例如使用Titanium Backup等第三方备份工具。
- 如果有其他备份工具,可以尝试使用这些工具来恢复通话记录。
综上所述,由于CM11版本的开发者决定不将通话记录包含在ADB备份中,因此直接通过ADB恢复通话记录的方法不可行。建议使用Google联系人同步或其他第三方备份工具来恢复通话记录。
正文完