#android #kotlin
#Android #kotlin
Вопрос:
Я новичок в разработке приложений…
Я где-то читал в документе: «…В большинстве случаев вы хотите использовать SharedPreferences, поскольку он автоматически создается и переносится на новые устройства … «
При первой установке мое приложение сохраняет несколько настроек с SharedPreferences. Это отлично работает, но если я удалю приложение или установлю его на другое устройство, настройки настроек будут потеряны.
Как я могу каким-то образом сохранить эти настройки в Интернете в Google, чтобы иметь возможность получить их, если пользователь сменит свой телефон или что-то подобное…
Может ли кто-нибудь указать мне правильное направление?
Комментарии:
1. Поддержано, как выглядит хороший вопрос, отвечающий ниже.
Ответ №1:
Я где-то читал в документе: «…В большинстве случаев вы хотите использовать SharedPreferences, поскольку он автоматически создается и переносится на новые устройства … »
- Ваши слова «резервное копирование и перенос на новые устройства» нигде не написаны и не соответствуют действительности.
- Мы используем
SharedPreferences
для минимизации операций с базой данных, это похоже на хранение переменных под рукой.
При первой установке мое приложение сохраняет несколько настроек с SharedPreferences. Это отлично работает, но если я удалю приложение или установлю его на другое устройство, настройки настроек будут потеряны.
- Если вы хотите сохранить или запомнить настройки, зависящие от устройства, используйте идентификатор устройства / imei_id и сохраните его на своем веб-сервере в базе данных mysql
- Даже если пользователь удалит приложение с устройства и установит его снова в любое время в будущем, вызовите асинхронную задачу на сервер, отправив deviceid / imei_id, извлеките его настройки из базы данных mysql и покажите их.
Как я могу каким-то образом сохранить эти настройки в Интернете в Google, чтобы иметь возможность получить их, если пользователь сменит свой телефон или что-то подобное…
- Если пользователь меняет устройство, вы ничего не можете сделать.
- Один из способов — сохранить общедоступные ключи device_id levels на сервере.
- Если пользователь меняет устройство и использует этот ключ, затем покажите ему ответ, этот ключ назначается другому устройству, но если вы тот же, дождитесь нашей поддержки
- Позвоните ему, подтвердите, что он тот же старый пользователь с новым устройством, удалите его старую запись из mysql и назначьте старый ключ новой записи устройства
- Или используйте систему OTP SMS для идентификации уже существующих клиентов с уникальными номерами телефонов
- Если код аутентификации OTP верен, извлеките настройки для этого пользователя с сервера, удалите старую запись mysql, измените новую запись со старым ключом и номером мобильного телефона
Это должно быть вашим направлением
Редактировать: 2 ##
Я надеялся, что существует более простое решение, но….
До этой даты у разработчиков нет коротких путей, и их никогда не будет.
Почему, нет коротких путей / простых способов?
Любое устройство (мобильное, настольное / портативное / любое устройство искусственного интеллекта), управляемое системным программным обеспечением, способно выполнять задачи в соответствии с его структурой.
Пример: android основан на Java, очевидно, вы можете создавать приложения на основе javascript, но это расширения для существующей системы, Android по-прежнему имеет базу виртуальной машины Java. ( Dalvic / Malvic like)
- Поэтому всегда лучше использовать родной
java
- Да,
Kotlin
это лучший вариант в наши дни и лучше, чем гибридный подход - У каждого способа есть свои преимущества, недостатки
- Если вы разработчик, вам следует придерживаться
native
подхода - Теперь ваш java-код никогда не знает, на какой версии он запущен, поэтому вам нужно,
check android versions programming wise
, и также определить поток для above Marshmallow amp; below marshmallow, и это явно выполняется разработчиком путем кодирования. - Например, после регистрации пользователя он никогда не показывал экран «Пожалуйста, зарегистрируйтесь снова», это не волшебство, ни Google, ни java, ни android ничего не делают, у разработчика есть
decided
, ,planned
,architectured
,designed
,coded
,tested
это. - Даже разработчикам нужно позаботиться
exceptions
, вам нужно справиться с этим, чтобы сохранить ваше приложениеcrashing
. - Короче говоря, разработчик
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, мое имя, адрес электронной почты, мои собственные настройки приложения, может быть, я демо, как оно попадет на ваше устройство с вашим решением?