Android BackupRestore示例不适用于Android 2.3 Nexus One



我使用BackupRestore创建了一个示例项目。我去安卓备份服务注册了一把钥匙。我得到了以下信息:

您的密钥是:AEdPqrEAAAAIW4p30C1GTNjzBOqWrb0clI7_OCWxm3ddIgkKhw此密钥适用于包名为的应用程序

com.example.android.backuprestore在您的AndroidManifest.xml文件中提供此密钥,并包含以下元素,放置在<应用程序>元素:

<元数据android:name="com.google.android.backup.api_key"android:value="AEdPqrEAAAAIW4p30C1GTNjzBOqWrb0clI7_OCWxm3ddIgkKhw"/>

当我启动应用程序并选择"培根"+"番茄"时,我可以使用dumpsys backup看到挂起的备份。所以我强制运行它(bgmr run=>挂起消失)并卸载该应用程序。

当我恢复它时,logcat告诉我"没有可用的恢复数据",当然,设置不会显示正确的信息。

你知道我做错了什么吗?

卸载应用程序时,备份数据被删除。的查找日志

BackupManagerService: Removing backed-up knowledge of <app package>

备份/恢复过程可能因制造商和设备而异。通过使用nexus设备卸载和安装,测试备份和恢复文档可以简单地工作,但我不希望在每个设备上都有相同的行为和一致性。

另请参阅此答案https://stackoverflow.com/a/13648673/1598308

几年后也出现了同样的错误。这可能是因为您使用的是Google Transport而不是LocalTransport。谷歌规定每次备份的速率限制为24小时,因此它试图创建备份,但没有,恢复失败。

  1. 运行adb-shell bmgr list transports查看传输
  2. 运行adb-shell bmgr transport android.com/android.internal.backup.LocalTransport将传输更改为本地

最新更新