• 0
Major

Реестр в Андроиде и Delphi

Вопросы

Господа, а есть ли в Андроиде нечто подобное реестру в Windows?

Нужно записать некоторые данные в систему, которые не должны теряться при удалении программы.

И как работать с этим, используя Delphi? Заранее спасибо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

14 ответов на этот вопрос

  • 0

В Unix нет реестра, там все на файлах.  Android, MacOS и iOS - это Unix. 

В Android есть 2 варианта для сохранения данных, которые не будут удалены после деинсталяции - сохранять на SD карту, и сохранять удаленно в свою базу (через интернет). 

http://stackoverflow.com/questions/19683614/android-persist-data-after-uninstall

Хотя можно попробовать записать что-то и во внутреннее хранилище, в папки Music, Ringtones итп  почитайте здесь статью Saving files that can be shared with other apps

 

 

Изменено пользователем ENRGY

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

ENRGY,

а как вам такой способ (не мой)?
 

uses
  Androidapi.Helpers,
  Androidapi.JNI.App,
  Androidapi.JNI.JavaTypes,
  Androidapi.JNI.GraphicsContentViewText;

var
  SP: JSharedPreferences;
  SPE: JSharedPreferences_Editor;

procedure TMain.FormShow(Sender: TObject);
begin
  SP := TAndroidHelper.Activity.getSharedPreferences(StringToJString('ZTApp'), 0);
  IP.Text := JStringToString(SP.getString(StringToJString('IP'), StringToJString('127.0.0.1')));
end;

procedure TMain.SaveClick(Sender: TObject);
begin
  SPE := SP.edit;
  SPE.putString(StringToJString('IP'), StringToJString(IP.Text));
  SPE.commit;
end;

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

SharedPreference удаляются при деинсталяции программы. 

Изменено пользователем ENRGY

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

я просто в SharedDocuments пишу. Это не очень хорошо, но полезно

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0
3 часа назад, krapotkin сказал:

я просто в SharedDocuments пишу. Это не очень хорошо, но полезно

если каждый туда будет писать, представляю, какой бардак там может образоваться))

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

но я тут знакомился с линуксом

там такой бардак в любой папке

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

а на CheckBoxEx верно?): .. не работает // .. ааа, нашел:

 *   https://github.com/freeonterminate/delphi/ - FMX INI file Delphi-master

procedure TFormMain.LogPassSave;
var
   RegIniFile: TXplatIniFile;
begin
 RegIniFile:= CreateIniFile('AndroidSoftware');
 RegIniFile.WriteBool('CheckBoxVbrEx','CheckBoxVbrExt', CheckBoxVbr.isChecked);
 RegIniFile.WriteInteger('TrackBarEx','TrackBarExt', Trunc(TrackBar1.Value));
 RegIniFile.Free;
end;

procedure TFormMain.LogPassLoad;
var
   RegIniFile: TXplatIniFile;
begin
 RegIniFile:= CreateIniFile('AndroidSoftware');
 CheckBoxVbr.isChecked := RegIniFile.ReadBool('CheckBoxVbrEx','CheckBoxVbrExt', True);
 TrackBar1.Value :=  RegIniFile.ReadInteger('TrackBarEx','TrackBarExt', Trunc(TrackBar1.Value));
end;

 

Изменено пользователем beegl
replace CODE

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

это немного вчерашний день

лучше 

создавайте в приложении класс настроек и считывайте/записывайте  его одной строкой

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

krapotkin

На мой взгляд формат ini наиболее удобный - Секция > Имя=значение.

1. Не нашел как делить настройки на секции - в этом основное преимущество ini. 

2. Парсинг json требует больше времени чем ini. Если настроек много, то это будет в несколько раз медленнее варианта ini. Например в моем проекте кроме основных настроек, есть еще группы, профайлы, и кампании.

И очень удобно когда секции ссылаются друг на друга, причем втч. читать сам ini файл в текстовом редакторе. 

К примеру : 

[Group1]

Key=Value

[Profile2]

Key=Value

[Campaign1]

Groups=Group1, Group2

Profiles=Profile1, Profile2 

[Campaign2]

[Campaign3]

 

Изменено пользователем ENRGY

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

проблемы со временем это несерьезно. ДАЖЕ если это так, то 50 мсек один раз за запуск всегда найдется.

Но в JSON например есть массивы, и вложенные объекты, чего нет в ini

и все-таки самое главное - это возможность совсем не писать код если настройки изменяются-добавляются

но решать, конечно, вам

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0
4 минуты назад, krapotkin сказал:

проблемы со временем это несерьезно.

"Приложения становятся медленнее быстрее, чем железо становится быстрее". (с) вроде как Никлаус Вирт...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

OFF: скажите это разработчикам JS ))) у них голимый json везде )))

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0
Цитата

проблемы со временем это несерьезно. 

Много помалу = много.

Изменено пользователем ENRGY

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу