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