Android Auto Backup: транспорт отклонен

Я пытаюсь проверить автоматическое резервное копирование Android. Я нахожусь на устройстве 7.1, и манифест приложения содержит: android:fullBackupOnly="true", Когда я выпускаю adb shell bmgr backupnow <package> Команда (для SO сообщения я заменил имя моего пакета на заполнитель), я получаю то, что выглядит как сбой:

Running backup for 1 requested packages.
Package @pm@ with result: Success
Package <package> with result: Transport rejected package
Backup finished with result: Success

если я изменю манифест на android:fullBackupOnly="false" (т. е. используйте старую резервную копию K/V), а затем снова backupnow Я получаю команду, которая выглядит как успех:

Running backup for 1 requested packages.
Package @pm@ with result: Success
Package <package> with result: Success
Backup finished with result: Success

Глядя на Logcat в случае отклонения, я вижу следующее:

11-10 09:27:59.660 1683-1683/? D/AndroidRuntime: Calling main entry com.android.commands.bmgr.Bmgr
11-10 09:27:59.669 1035-2498/? V/PerformBackupTask: Beginning backup of 0 targets
11-10 09:27:59.677 1035-2498/? D/PerformBackupTask: invokeAgentForBackup on @pm@
11-10 09:27:59.685 1035-2498/? I/BackupRestoreController: Getting widget state for user: 0
11-10 09:27:59.691 1035-2498/? D/PerformBackupTask: Starting full backups for: [<package>]
11-10 09:27:59.692 1035-2498/? I/BackupManagerService: K/V backup pass finished.
11-10 09:27:59.693 1035-1699/? I/PFTBT: Initiating full-data transport backup of <package>
11-10 09:27:59.695 12554-12566/? I/Backup: [GmsBackupTransport] Attempt to do full backup on <package>
11-10 09:27:59.697 1035-1699/? I/PFTBT: Transport rejected backup of <package>, skipping
11-10 09:27:59.697 1035-1699/? I/PFTBT: Unbinding agent in <package>
11-10 09:27:59.697 1035-1699/? W/ActivityManager: Unbinding backup agent with no active backup
11-10 09:27:59.697 1035-1699/? I/PFTBT: Full backup completed with status: 0
11-10 09:27:59.697 1035-1699/? I/BackupManagerService: Full data backup pass finished.

при этом соответствующие строки:

11-10 09:27:59.695 12554-12566/? I/Backup: [GmsBackupTransport] Attempt to do full backup on <package>
11-10 09:27:59.697 1035-1699/? I/PFTBT: Transport rejected backup of <package>, skipping

Почему происходит полное / автоматическое резервное копирование?

Вот полный LogCat из примера успеха (K/V):

11-10 09:31:21.750 2200-2200/? D/AndroidRuntime: Calling main entry com.android.commands.bmgr.Bmgr
11-10 09:31:21.762 1035-2498/? V/PerformBackupTask: Beginning backup of 1 targets
11-10 09:31:21.768 1035-2498/? D/PerformBackupTask: invokeAgentForBackup on @pm@
11-10 09:31:21.775 1035-2498/? I/BackupRestoreController: Getting widget state for user: 0
11-10 09:31:21.780 1035-2498/? D/PerformBackupTask: starting key/value backup of BackupRequest{pkg= <package>}
11-10 09:31:21.783 1035-2498/? D/BackupManagerService: awaiting agent for ApplicationInfo{b68136a  <package>}
11-10 09:31:21.793 1035-1815/? D/BackupManagerService: agentConnected pkg= <package> agent=android.os.BinderProxy@6750684
11-10 09:31:21.793 1035-2498/? I/BackupManagerService: got agent android.app.IBackupAgent$Stub$Proxy@5e82e6d
11-10 09:31:21.793 1035-2498/? D/PerformBackupTask: invokeAgentForBackup on  <package>
11-10 09:31:21.796 1908-1920/ <package> D/BackupAgent: onBackup
11-10 09:31:21.796 1908-1920/ <package> D/BackupHelperDispatcher: handling existing helper 'data'  <package>.io.DbBackupHelper@35d5ebe
11-10 09:31:21.798 1908-1920/ <package> D/BackupHelperDispatcher: handling existing helper 'prefs' android.app.backup.SharedPreferencesBackupHelper@6936b1f
11-10 09:31:21.800 1035-2498/? I/BackupRestoreController: Getting widget state for user: 0
11-10 09:31:21.805 2200-2200/? D/AndroidRuntime: Shutting down VM
11-10 09:31:21.807 1035-2498/? I/BackupManagerService: K/V backup pass finished.

2 ответа

В документации по адресу https://developer.android.com/guide/topics/data/testingbackup.html говорится следующее:

Превышена квота

Если вы видите следующие сообщения в logcat:

I / PFTBT: Транспортное отклоненное резервное копирование PACKAGE, пропуск

--- или же ---

I / PFTBT: Транспортная квота превышена для пакета: ПАКЕТ

Ваше приложение превысило квоту и было запрещено резервное копирование данных на этом устройстве. Чтобы снять бан, либо сбросьте настройки устройства до заводских настроек, либо измените учетную запись резервного копирования.

Я получил точно такую ​​же ошибку и, наконец, нашел решение:

targetSdkLevel в build.gradle должен быть установлен на 23 или выше.

Проект будет компилироваться и нормально работать в эмуляторе, если targetSdkLevel установлен, например, на 21. Но чтобы иметь возможность использовать Сервисы Google Play в качестве места назначения для резервного копирования (которое, я полагаю, большинство из нас использует), должно быть не менее 23.

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