更新:好的,所以10个小时过去了,我在两台设备上再次运行相同的代码,令人惊讶的是,现在备份和恢复操作运行正常 . 今天对我来说一定是个好日子 .

我用来重现备份和还原方案的过程:

1)我使用Eclipse中的发布密钥导出了我的备份应用APK .
2)我在Desire S和Galaxy S2上卸载了我的备份应用程序 .
3)通过禁用和重新启用备份,我清除了两台设备上的所有备份数据 .
4)当Desire S连接到USB调试时,我确认我的帐户中没有存储恢复集"adb shell bmgr list sets" .
4)我将Desire S与USB断开连接,在其上安装了我的备份应用程序 .
5)我运行备份应用程序,它调用backupmanager.datachanged()方法 .
6)我通过USB调试连接Desire S,通过运行"adb shell bmgr run"强制启动备份操作 .
7)我确认使用"adb shell bmgr list sets"创建了恢复集 .
8)我在Galaxy S2上安装了备份应用程序,并在Desire S中创建的备份自动恢复 .

我将进一步测试以确定是否可以可靠地再现此过程,尤其是在我不强制执行备份操作时 .


我正在编写一个简单的备份程序,可以备份和恢复Android设备上的小文件 . 我已经完成了几乎所有必需的工作(例如编写自定义BackupAgent),并且备份和恢复操作在同一设备上平稳运行 .

但是,当我尝试跨两个设备执行备份和还原时,即在一个设备上进行备份并在另一个设备上进行还原时,还原操作就会失败 . 它无法识别我创建的备份 . 然后我尝试在两台设备上备份和恢复相同的文件(但文件包含不同的内容) . 我发现两台设备独立备份和恢复 .

我已经读过Android上的BackupManager服务用于备份设备上的数据,并在用户更改为其他设备时进行恢复 . 这个过程显然涉及两个不同的设备 . 为什么备份和恢复功能无法在两台设备上运行?

我知道与我类似的多个问题,例如thisthis . 不幸的是,我不认为它们包含对我有用的答案 .

我是否知道是否有人成功创建了可以使用Android BackupManager服务在多个设备上备份和恢复的应用程序?

附:有关您的信息,这两个设备是HTC Desire S(Android 2.3.5)和三星Galaxy S2 i9100(Android 4.1.2) . 两者都运行最新的官方库存ROM . 当然,它们是使用相同的Google帐户激活的 .

非常感谢你 .