У меня есть инструкции Google для резервного копирования данных с помощью резервного копирования api. И я пишу простой тест program, чтобы проверить, как он работает (MainActivity + BackupAgent для общих настроек).Работает ли резервная копия android на реальных устройствах?
На AVD-эмуляторе с различными API-интерфейсами все работает отлично, но на реальном устройстве я не могу получить данные после переустановки приложения.
Я проверил его по-разному:
- Google Рекомендации от backup data
- ADB оболочки bmgr команды/ожидание 24+ часов для события автоматического резервного копирования
- транспортирует com.google.android.gms/.backup.BackupTransportService and android/com.android.internal.backup.LocalTransport
- дополнительная команда «bmgr restore»/дополнительный запрос вызоваRestore()
- usin г FileBackupHelper/SharedPreferencesBackupHelper
- различных устройства Nexus4, Nexus7, Samsung Galaxy, Acer A501 (каждое устройство имеет все настройки "Резервное копирование & сброса" на)
- установить приложение из Android Studio/установки подписанной APK из SDCard/я даже отправил свой приложение на Google Play и попытался установить приложение оттуда
- деинсталлировать applicatation с помощью ADB/с applciations устройства/вытереть устройство
в 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' [email protected]
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 [email protected]
03-14 18:29:14.716 311-407/? I/BackupManagerService﹕ got agent [email protected]
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), и не пытался восстановить их на своих устройствах, и они также не восстанавливают ничего после переустанавливать.
Я нахожу себя очень глупым. Я единственный, у кого такая проблема?
Вы пытаетесь сделать резервную копию на приложении, подписанное с тот же ключ? Я думаю (но не знаю), что файлы, хранящиеся для одного ключа, соленые с указанным ключом, и из-за этого вы не можете перекрестно передавать данные из двух разных ключей-подписанных-apks. Я не знаю, было ли это то, что вы делали, но дружеские хедз-ап, это все. – MeetTitan
@MeetTitan Я попытался выполнить полный тестовый цикл (установить - установить настройки - вызвать dataChanged - запустить команды bmgr - удалить - установить еще раз - попробовать прочитать настройки) для того же .apk файла –
Получил ли вы ответ на этот вопрос? Я реализовал API резервного копирования, и я заметил, что он работает на эмуляторах и устройствах Motorola, но не на устройствах Samsung ... –