как сохранить мои настройки приложения и получить их после переустановки или смены устройства

#android #kotlin

#Android #kotlin

Вопрос:

Я новичок в разработке приложений…

Я где-то читал в документе: «…В большинстве случаев вы хотите использовать SharedPreferences, поскольку он автоматически создается и переносится на новые устройства … «

При первой установке мое приложение сохраняет несколько настроек с SharedPreferences. Это отлично работает, но если я удалю приложение или установлю его на другое устройство, настройки настроек будут потеряны.

Как я могу каким-то образом сохранить эти настройки в Интернете в Google, чтобы иметь возможность получить их, если пользователь сменит свой телефон или что-то подобное…

Может ли кто-нибудь указать мне правильное направление?

Комментарии:

1. Поддержано, как выглядит хороший вопрос, отвечающий ниже.

Ответ №1:

Я где-то читал в документе: «…В большинстве случаев вы хотите использовать SharedPreferences, поскольку он автоматически создается и переносится на новые устройства … »

  1. Ваши слова «резервное копирование и перенос на новые устройства» нигде не написаны и не соответствуют действительности.
  2. Мы используем SharedPreferences для минимизации операций с базой данных, это похоже на хранение переменных под рукой.

При первой установке мое приложение сохраняет несколько настроек с SharedPreferences. Это отлично работает, но если я удалю приложение или установлю его на другое устройство, настройки настроек будут потеряны.

  1. Если вы хотите сохранить или запомнить настройки, зависящие от устройства, используйте идентификатор устройства / imei_id и сохраните его на своем веб-сервере в базе данных mysql
  2. Даже если пользователь удалит приложение с устройства и установит его снова в любое время в будущем, вызовите асинхронную задачу на сервер, отправив deviceid / imei_id, извлеките его настройки из базы данных mysql и покажите их.

Как я могу каким-то образом сохранить эти настройки в Интернете в Google, чтобы иметь возможность получить их, если пользователь сменит свой телефон или что-то подобное…

  1. Если пользователь меняет устройство, вы ничего не можете сделать.
  2. Один из способов — сохранить общедоступные ключи device_id levels на сервере.
  3. Если пользователь меняет устройство и использует этот ключ, затем покажите ему ответ, этот ключ назначается другому устройству, но если вы тот же, дождитесь нашей поддержки
  4. Позвоните ему, подтвердите, что он тот же старый пользователь с новым устройством, удалите его старую запись из mysql и назначьте старый ключ новой записи устройства
  5. Или используйте систему OTP SMS для идентификации уже существующих клиентов с уникальными номерами телефонов
  6. Если код аутентификации OTP верен, извлеките настройки для этого пользователя с сервера, удалите старую запись mysql, измените новую запись со старым ключом и номером мобильного телефона

Это должно быть вашим направлением

Редактировать: 2 ##

Я надеялся, что существует более простое решение, но….

До этой даты у разработчиков нет коротких путей, и их никогда не будет.

Почему, нет коротких путей / простых способов?

Любое устройство (мобильное, настольное / портативное / любое устройство искусственного интеллекта), управляемое системным программным обеспечением, способно выполнять задачи в соответствии с его структурой.

Пример: android основан на Java, очевидно, вы можете создавать приложения на основе javascript, но это расширения для существующей системы, Android по-прежнему имеет базу виртуальной машины Java. ( Dalvic / Malvic like)

  1. Поэтому всегда лучше использовать родной java
  2. Да, Kotlin это лучший вариант в наши дни и лучше, чем гибридный подход
  3. У каждого способа есть свои преимущества, недостатки
  4. Если вы разработчик, вам следует придерживаться native подхода
  5. Теперь ваш java-код никогда не знает, на какой версии он запущен, поэтому вам нужно, check android versions programming wise , и также определить поток для above Marshmallow amp; below marshmallow, и это явно выполняется разработчиком путем кодирования.
  6. Например, после регистрации пользователя он никогда не показывал экран «Пожалуйста, зарегистрируйтесь снова», это не волшебство, ни Google, ни java, ни android ничего не делают, у разработчика есть decided , , planned , architectured , designed , coded , tested это.
  7. Даже разработчикам нужно позаботиться exceptions , вам нужно справиться с этим, чтобы сохранить ваше приложение crashing .
  8. Короче говоря, разработчик god — это тот, кто создает его own universe , и все pre-planned , и verified все.

Комментарии:

1. Единственный способ сопоставить что-либо пользователю и получить эту информацию после переустановки приложения или смены устройства — сохранить эту информацию на сервере.

2. @LucaNicoletti, да, ваш ответ короткий и приятный, но поскольку пользователь новичок в разработке, как он упомянул в своей первой строке, я просто разработал его, для разработчиков нет ничего волшебного, он должен самостоятельно кодировать все для мертвой машины

3. большое вам спасибо за ваш ответ, я надеялся, что существует более простое решение, но, по крайней мере, теперь у меня есть направление. Я должен сказать, что то, что я сказал, действительно было правдой, как вы можете видеть здесь, в документе указано точное предложение копирования / вставки… 2-й абзац здесь: developer.android.com/reference/kotlin/androidx/preference/… . При этом спасибо за помощь

4. @user2465819, Редактирование ответа, пожалуйста, просмотрите еще раз

Ответ №2:

Вы должны использовать allowBackup = "true" в своем файле манифеста. Более подробную информацию можно найти здесь: Автообновление

Комментарии:

1. Как allowBackup = «true» будет сохранять настройки, зависящие от устройства? У моего устройства другой идентификатор устройства, imei, мое имя, адрес электронной почты, мои собственные настройки приложения, может быть, я демо, как оно попадет на ваше устройство с вашим решением?