android backup api可以在真实设备上运行吗?

时间:2015-03-14 16:07:14

标签: android android-backup-service

我已使用备份API将Google指令用于备份数据。我编写简单的测试program来检查它是如何工作的(MainActivity + BackupAgent用于共享首选项)。

在具有不同API的AVD模拟器上,一切都很完美,但在真实设备上,我无法在重新安装应用程序后获取数据。

我以不同的方式测试过它:

  • 来自backup data
  • 的Google推荐
  • adb shell bmgr命令/等待24小时以上进行自动备份事件
  • 传输com.google.android.gms / .backup.BackupTransportService和android / com.android.internal.backup.LocalTransport
  • 额外" bmgr恢复"命令/附加调用requestRestore()
  • 使用FileBackupHelper / SharedPreferencesBackupHelper
  • 不同的设备Nexus4,Nexus7,三星Galaxy,Acer a501(每台设备都有"备份和重置"设置开启)
  • 从Android Studio安装应用程序/从sdcard安装已签名的apk /我甚至在Google Play上发布了我的应用程序并尝试从那里安装应用程序
  • 使用adb / from device applciations / wipe my device
  • 卸载应用程序

在logcat中,我可以看到我的包在系统备份列表中,并且调用了BackupHelper.onCreate()。

    03-14 18:29:14.716  16355-16355/com.jh.testmybackup D/BACKUP﹕ ThebackupAgent.onCreate()
    03-14 18:29:14.716  16355-16367/com.jh.testmybackup V/BackupServiceBinder﹕ doBackup() invoked
    03-14 18:29:14.716  16355-16367/com.jh.testmybackup D/BackupHelperDispatcher﹕ handling existing helper 'com.jh.testmybackup' android.app.backup.SharedPreferencesBackupHelper@41e1ad90
    03-14 18:29:14.716      311-407/? D/PerformBackupTask﹕ starting agent for backup of BackupRequest{pkg=com.jh.testmybackup}
    03-14 18:29:14.716      311-407/? D/BackupManagerService﹕ awaiting agent for ApplicationInfo{42c80f98 com.jh.testmybackup}
    03-14 18:29:14.716    311-27709/? D/BackupManagerService﹕ agentConnected pkg=com.jh.testmybackup agent=android.os.BinderProxy@426b4240
    03-14 18:29:14.716      311-407/? I/BackupManagerService﹕ got agent android.app.IBackupAgent$Stub$Proxy@42979528
    03-14 18:29:14.716      311-407/? D/PerformBackupTask﹕ invokeAgentForBackup on com.jh.testmybackup
    03-14 18:29:15.176      311-407/? I/PerformBackupTask﹕ Backup pass finished.

但没有任何帮助。 重新安装应用程序后,我无法恢复数据

毕竟,我试图找到有关此问题的一些信息,但没有找到任何解决方案。我找到了一些示例应用程序(stackoverflow.com/questions/12402749/examples-of-application-used-android-backup-services没有链接的声誉)并试图在我的设备上安装它们,它们也没有恢复重新安装后没什么。

我非常愚蠢。我是唯一一个有这种问题的人吗?

1 个答案:

答案 0 :(得分:0)

检查您的清单文件,看看在应用程序下是否有android:allowBackup =“true”以及android:backupAgent,它们具有项目FileBackupAgent的正确路径。此外,您的元数据应该有您的注册密钥,例如android:value =“your-registerd-key”

确保您的设备已连接至Wi-Fi网络。此外,请确保在您的设备设置中,备份和重置需要选中“备份我的数据”,并且“备份帐户”具有有效的Gmail帐户,并选中“自动恢复”。

此外,在命令窗口中,您的传输设置应为:* com.google.android.backup / .BackupTransportService

您可以通过输入以下内容来查看:bmgr list transports如果transport设置为local,则输入:bmgr transport com.google.android.backup / .BackupTransportService

用于“踢”开始https://www.google.com/settings/dashboard备份的其他bmgr命令是:

bmgr enabled 
bmgr wipe "your package in your manifest file"
bmgr backup "your package in your manifest file"
bmgr run

刷新https://www.google.com/settings/dashboard以查看最新的备份时间戳