Почему это приложение не восстанавливается из Google Backup, пока я не укажу набор в adb?

Я прочитал этот отличный ответ о том, как работают наборы , но я вижу поведение, которое не понимаю в этом приложении.

Я только что установил на устройство, на котором приложение никогда не устанавливалось (кажется, см. внизу), и ничего не было восстановлено. Через adb я попробовал команду, bmgr restore <package_name>и она сказала «невозможно восстановить».

Так я и сделал bmgr list setsи увидел, что доступен только один набор (с другого устройства). Я подумал: «Ну, это должен быть тот, который он пытается использовать и терпит неудачу». Но потом я побежал bmgr restore <set token> <package_name>и восстановление сработало! И теперь восстановление работает и без имени токена.

Если можно было использовать только один набор, почему он не восстановился должным образом? Был ли еще один скрытый набор? Возможно, приложение было установлено раньше, но я позвонил bmgr wipe <package_name>и переключился bmgr enable true/false, чтобы очистить все ранее существовавшие данные.

Ответы (1)

bmgr restore packageне переустанавливает приложение: оно отправляет сигнал установленному приложению, чтобы оно восстановило свои данные из резервной копии. Если приложение не установлено, вы получите сообщение об ошибке, которое вы видели.

Это приложение Play Store отвечает за установку других приложений. Если хотите, вы можете думать о списке установленных приложений как о данных резервной копии Play Store, и он восстанавливается из этой резервной копии, устанавливая все приложения в списке. Это занимает некоторое время и происходит в фоновом режиме, поскольку механизм резервного копирования разработан таким образом, чтобы быть невидимым для пользователя.

Возможно, Play Store удалось установить ваше целевое приложение между вашей первой и последней bmgr restoreкомандами или переключение bmgr enableпривело к переустановке приложения в этот момент.

Спасибо за ответ. Я должен уточнить, что я позвонил bmgr restore package после того, как мое приложение было установлено (его основная активность уже была загружена), поэтому я знаю, что пакет был на устройстве. Что для меня не имеет смысла, так это то, что восстановление без указания набора не удалось, но восстановление с указанным набором прошло успешно. Был только один набор на выбор.