Проверьте и включите автоматическое резервное копирование на Google диск из приложения Android

#android

#Android

Вопрос:

Возможно ли проверить, включил ли пользователь функцию автоматического резервного копирования Google из приложения, и предоставить им возможность включать или выключать ее? Если да, то не мог бы кто-нибудь, пожалуйста, предоставить схему того, как реализовать эту функцию, поскольку документация Google не дает никакой ясности по этому вопросу?

Ответ №1:

Вы могли бы проверить программно в своем приложении с помощью кода, подобного следующему:

   PackageInfo packageInfo = getPackageManager().getPackageInfo(getPackageName(), 0);
  if ((packageInfo.applicationInfo.flags amp; ApplicationInfo.FLAG_ALLOW_BACKUP) != 0) {
     // it is enabled
  } else {
     // it is disabled
  }
  

Обычно это должно быть в манифесте Android и под вашим контролем, но я предполагаю, что у вас есть один из следующих сценариев:

  • вы предоставляете SDK и хотите проверить, разрешает ли приложение, использующее ваш SDK, резервное копирование
  • вы обеспокоены тем, что кто-то распаковывает apk вашего приложения, изменяет android:allowBackup и переупаковывает ваш apk

Что касается изменения параметра для включения резервного копирования (даже если вы проверите и обнаружите, что значение FLAG_ALLOW_BACKUP равно false), я не знаю ни одного способа, которым вы можете сделать это программно. Но, по крайней мере, вы можете проверить настройку.

Если вы действительно все еще хотите выполнить резервное копирование, даже если значение FLAG_ALLOW_BACKUP равно false, вам может потребоваться написать собственное решение для резервного копирования.

Ответ №2:

Возможный ответ заключается в том, что ваше приложение будет участвовать в автоматическом резервном копировании, если вы включили функцию разрешить резервное копирование в манифесте, но вы можете, если вы отключили ее и хотите загрузить резервную копию по своему усмотрению, тогда вы можете сделать это, BackupAgent посетив здесь, чтобы узнать больше. Более подробная информация о allowBackup="true" здесь, подробная информация о BackupAgent здесь

 <manifest ... >
    ...
    <application android:allowBackup="false" ... >
        ...
    </application>
</manifest>
  

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