Автоматическое резервное копирование Android MarshMallow - нужно ли сейчас исключать информацию, относящуюся к конкретному устройству, например идентификатор GCM?

Вот некоторая информация о резервном копировании и восстановлении службы воспроизведения для MarshMallow

Как видите, BackupAgentHelper теперь не нужен. Разработчику не нужно прилагать усилий для резервного копирования приложений, это переключение в пользовательских настройках для его выключения и включения. Теперь представьте, что у меня есть идентификатор регистрации GCM, уже сохраненный в sharedPreference, и теперь пользователь переключает устройства и выполняет автоматическое резервное копирование. Старый идентификатор GCM будет включен в восстановление, а новое устройство не будет регистрироваться для GCM и, следовательно, не будет иметь права на удаленные уведомления.

Итак, на мой взгляд, мне нужно написать XML-файл схемы резервного копирования, чтобы исключить идентификатор gcm, и если да, то как мне это сделать: под исключением xml я имею в виду этот атрибут в теге приложения манифеста: android:fullBackupContent="@xml/mybackupscheme"

1 ответ

Решение

Да, нам нужно исключить идентификатор GCM. Документация Android гласит, что...

Для приложений, использующих Google Cloud Messaging (GCM) для push-уведомлений, резервное копирование маркера регистрации, возвращенного регистрацией в Google Cloud Messaging, может вызвать неожиданное поведение в уведомлениях для восстановленного приложения. Это связано с тем, что когда пользователь устанавливает ваше приложение на новое устройство, оно должно запросить API GCM для получения нового регистрационного токена. Если старая регистрация присутствует, поскольку система создала резервную копию и восстановила ее, приложение не будет искать новый токен. Чтобы предотвратить возникновение этой проблемы, исключите маркер регистрации из набора файлов резервных копий.

Вы можете увидеть здесь для деталей о том, как исключить.

Другие вопросы по тегам