Я прочитал этот отличный ответ о том, как работают наборы , но я вижу поведение, которое не понимаю в этом приложении.
Я только что установил на устройство, на котором приложение никогда не устанавливалось (кажется, см. внизу), и ничего не было восстановлено. Через adb я попробовал команду, bmgr restore <package_name>
и она сказала «невозможно восстановить».
Так я и сделал bmgr list sets
и увидел, что доступен только один набор (с другого устройства). Я подумал: «Ну, это должен быть тот, который он пытается использовать и терпит неудачу». Но потом я побежал bmgr restore <set token> <package_name>
и восстановление сработало! И теперь восстановление работает и без имени токена.
Если можно было использовать только один набор, почему он не восстановился должным образом? Был ли еще один скрытый набор? Возможно, приложение было установлено раньше, но я позвонил bmgr wipe <package_name>
и переключился bmgr enable true/false
, чтобы очистить все ранее существовавшие данные.
bmgr restore package
не переустанавливает приложение: оно отправляет сигнал установленному приложению, чтобы оно восстановило свои данные из резервной копии. Если приложение не установлено, вы получите сообщение об ошибке, которое вы видели.
Это приложение Play Store отвечает за установку других приложений. Если хотите, вы можете думать о списке установленных приложений как о данных резервной копии Play Store, и он восстанавливается из этой резервной копии, устанавливая все приложения в списке. Это занимает некоторое время и происходит в фоновом режиме, поскольку механизм резервного копирования разработан таким образом, чтобы быть невидимым для пользователя.
Возможно, Play Store удалось установить ваше целевое приложение между вашей первой и последней bmgr restore
командами или переключение bmgr enable
привело к переустановке приложения в этот момент.
Северный Юг
bmgr restore package
после того, как мое приложение было установлено (его основная активность уже была загружена), поэтому я знаю, что пакет был на устройстве. Что для меня не имеет смысла, так это то, что восстановление без указания набора не удалось, но восстановление с указанным набором прошло успешно. Был только один набор на выбор.