Android Backup Manager работает только на локальном транспорте


Я пытался реализовать резервное копирование в своем приложении больше месяца, но до сих пор безуспешно. Я сделал все шаги, которые сообщает Google docs: Зарегистрирован на сервисе Google Изменения в Манифесте (allowBackup, backupAgent и backup.api_key (Google service register) и так далее...

Манифестные части:

<application
   android:allowBackup="true"
   android:backupAgent="my.package.MyBackupManagerClass">

<meta-data android:name="com.google.android.backup.api_key" 
   android:value="my-generated-key-by-google-service" />

На самом деле резервное копирование работает, но только с использованием локального транспорта, я протестировал с помощью bmgr backup / run / restore:

bmgr list transports
  * android/com.android.internal.backup.LocalTransport
    com.google.android.gms/.backup.BackupTransportService

Но при попытке использовать Google transport (облако: com.google.android.gms/.backup.BackupTransportService) он не работает, даже не звонит моему onCreate() из MyBackupAgentHelper.

Один момент, который я хочу упомянуть, это то, что когда я бегу: резервное копирование bmgr bmgr run

После выполнения команды, на logcat показывает много "теперь staging backup of" (также показывает мой пакет приложений в этом списке), но это происходит очень быстро и не кажется, что резервное копирование выполняется на самом деле, в конце концов, даже мой MyBackupHelper.onCreate () не называется:

02-12 21:13:28.889: D/BackupManagerService(547): Now staging backup of com.google.android.talk
02-12 21:13:28.904: D/BackupManagerService(547): Now staging backup of com.google.android.dialer
02-12 21:13:28.907: D/BackupManagerService(547): Now staging backup of com.android.providers.settings
02-12 21:13:28.910: D/BackupManagerService(547): Now staging backup of com.sirma.mobile.bible.android
02-12 21:13:28.914: D/BackupManagerService(547): Now staging backup of com.android.sharedstoragebackup
02-12 21:13:28.919: D/BackupManagerService(547): Now staging backup of com.google.android.gm
02-12 21:13:28.922: D/BackupManagerService(547): Now staging backup of com.android.providers.userdictionary
02-12 21:13:28.926: D/BackupManagerService(547): Now staging backup of com.google.android.apps.genie.geniewidget
02-12 21:13:28.963: I/GmsBackupTransport(1409): Next backup will happen in 86399923 millis.
02-12 21:13:28.967: I/BackupManagerService(547): Backup pass finished.
1 7

1 ответ:

У меня была такая же ситуация - когда я запускаю ручное резервное копирование (через команду adb shell) работает, но только с использованием локального транспорта. Для меня решением было опубликовать сервисы Google Play, потому что я протестировал службу резервного копирования данных без опубликованных сервисов GP. Проверьте конфигурацию proguard также, если вы используете Proguard