Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.83
elf32
-13 / 8 / 0
Регистрация: 15.02.2013
Сообщений: 87
#1

Как и куда сохранить в Internal Storage? - Программирование Android

22.02.2013, 17:42. Просмотров 1636. Ответов 12
Метки нет (Все метки)

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

External Storage не подходит - может вообще не быть и может быть переставлено на другой аппарат.
SharedPreferences and DefaultSharedPreferences - после очистки данных там тоже удаляется.
Запись в getDownloadCacheDirectory, getRootDirectory, getDataDirectory - Permission denied.
Запись в /system - read only filesystem.

Что нет больше вариантов? ну или как-то запретить очистку данных пользоватлем?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.02.2013, 17:42
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как и куда сохранить в Internal Storage? (Программирование Android):

Internal storage - Программирование Android
У меня есть 2 телефона: Samsung ace2 и HTC One V. На первом стоит андроид 2.3, на втором 4.0.3 Мне нужно писать данные в файл. Этот...

WebView и html файлы в Internal Storage - Программирование Android
С html файлами, находящимися в assets, можно работать из WebView, переходя по относительным сылкам от одного к другому. Мне нужно, чтоб...

Дублируются файлы в папках и в /storage/emulated/0 и /storage/emulated/legacy — почему? - Программирование Android
Почему дублируются папки в Андроид и можно ли это как-то предотвратить? Андроид 5.1 И можно ли удалить из legacy - проблем точно не...

Не виден файл сохраненный в /storage/emulated/0/papka - Программирование Android
До сего дня я был уверен что файл сохраненный /storage/emulated/0/papka/foto.jpg будет виден во внутренней (доступной через подключение по...

Android: internal error - Программирование Android
Создал пустой проект под андроид. При попытке компиляции в эклипсе появляется вот такое ругательство. Заметил, что появилось после того...

Раздел памяти приложений(память в которую устанавливаются приложения) называется Internal Storage верно? - Android
Раздел памяти приложений(память в которую устанавливаются приложения) называется Internal Storage верно??

12
V0v1k
1159 / 983 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
22.02.2013, 20:01 #2
на веб сервер.
0
elf32
-13 / 8 / 0
Регистрация: 15.02.2013
Сообщений: 87
22.02.2013, 20:42  [ТС] #3
нет, не вариант. Как раз наоборот, данные и берутся из веб сервера, а потом нужно жестко сохранить их на телефоне раз и навсегда (ну по карйней мере не дать удалить эти данные тривиальным способом).
Нужно сохранить типа лицензии приложения.
0
V0v1k
1159 / 983 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
22.02.2013, 22:41 #4
как сохранить шкаф в доме при сносе дома бульдозером не вынося шкаф с дома?)

Добавлено через 6 минут
Цитата Сообщение от elf32 Посмотреть сообщение
Нужно сохранить типа лицензии приложения.
в смысле? объясните зачем вам это? если бы так можно было сделать, то приложение могло бы например забить всю память телефона и запретить удаление. а дальше что? выбрасывать телефон?
0
elf32
-13 / 8 / 0
Регистрация: 15.02.2013
Сообщений: 87
22.02.2013, 23:54  [ТС] #5
Ну в данном случае сносится не весь дом (телефон), а только одна квартира (приложенгие). И чтобы сохранить шкаф, достаточно вынести его из квартиры.

Ну а что мешает забить всю память в пределах своего приложения (в /data).?
Да и наприер тот же Preferences - там сильно не разгонишся. Вот не пойму почему DefaultSharedPreferences удаляется при очистке данных приложения? веть настройки создаются на уровне телефоне, а не на уровне приложения (SharedPreferences).

Логика работы приложения примерно такая:
устанавливается приложение, первый раз соединяется с веб сервером, получает уникальный ключ - этот ключ нужно сохранить в телефоне и потом его постоянно передавать на сервер при последующих коннектах.
ключ должен генерироватся именно сервером. этот ключ накладывает определенные лимиты по использованию приложения которых изначально нет (типа триальная версия).

Кстати, запретить удаление и так можно - запросить права администратора, но почему то на очистку данных оно не работает.
В общем понятно. Не реализуемо.
0
V0v1k
1159 / 983 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
23.02.2013, 00:09 #6
ну под домом я имел ввиду приложение, но это сути не меняет.

а чем вам не подходит использовать id телефона как ключ?

Добавлено через 1 минуту
Цитата Сообщение от elf32 Посмотреть сообщение
Ну а что мешает забить всю память в пределах своего приложения (в /data).?
приложения ведь можно снести... а вы хотите монопольные права на память девайса даже после сноса приложения.

Добавлено через 1 минуту
Цитата Сообщение от elf32 Посмотреть сообщение
веть настройки создаются на уровне телефоне, а не на уровне приложения (SharedPreferences).
а вы попробуйте получить настройки одного приложения с другого)

Добавлено через 8 минут
представьте что бы было, если бы каждое приложение что-то оставляло после себя что невозможно удалить...
0
YAUHEN
146 / 128 / 6
Регистрация: 29.07.2008
Сообщений: 506
23.02.2013, 01:07 #7
Цитата Сообщение от elf32 Посмотреть сообщение
устанавливается приложение, первый раз соединяется с веб сервером, получает уникальный ключ - этот ключ нужно сохранить в телефоне и потом его постоянно передавать на сервер при последующих коннектах. ключ должен генерироватся именно сервером. этот ключ накладывает определенные лимиты по использованию приложения которых изначально нет (типа триальная версия).
я тут сейчас вам гениальную идею подкину, только никому не расказвайте:
пусть пользователь вводит логин и пароль а сервак в респонзе отвечает триальная ли версия или полная.
0
V0v1k
1159 / 983 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
23.02.2013, 01:09 #8
проще просто по id девайса идентифицировать пользователя.
0
elf32
-13 / 8 / 0
Регистрация: 15.02.2013
Сообщений: 87
23.02.2013, 01:26  [ТС] #9
да я всё прекрасно понимаю.. сам готов выдергивать руки разработчикам которые создают папки где попало.
Я не сказал, что нужно создать что-то, что невозможно удалить, я сказал невозможно удалить тривиальным способом (т.е. через настройки приложения), это не значит, что его невозможно удалить через файловый менеджер.
На карте памяти как раз так же и происходит - приложения там гадят и ничего.
Да согласен, я ж говорю, не реализуемо. Я просто думал каким-то нестандартным способом - типа SharedPreferences, типа скрытая смс-ка, контакт в записной книжке или закладка.

Добавлено через 2 минуты
Цитата Сообщение от V0v1k Посмотреть сообщение
проще просто по id девайса идентифицировать пользователя.
Да я просто пример написал. Вот ещё посложнее. Как запомнить адрес сервера если он переехал, а в приложении были удалены данные, в которых уже был адрес нового сервера.
0
V0v1k
1159 / 983 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
23.02.2013, 01:30 #10
адрес сервера прописывать в обычную константу, а при переезде сервера просто выкладывать апдей приложения наверное.
0
ЧакНоррис
-17 / 4 / 1
Регистрация: 15.02.2013
Сообщений: 25
23.02.2013, 02:36 #11
Цитата Сообщение от V0v1k Посмотреть сообщение
представьте что бы было, если бы каждое приложение что-то оставляло после себя что невозможно удалить...
Согласен)))
V0v1k, Пишите свою лицензию куда угодно на карту.
Цитата Сообщение от elf32 Посмотреть сообщение
Вот не пойму почему DefaultSharedPreferences удаляется при очистке данных приложения? веть настройки создаются на уровне телефоне, а не на уровне приложения (SharedPreferences).
Я так понимаю что эти настройки в первую очередь для создавшего их приложения, а во вторую, всем желающим, удаление их при удалении создавшего их приложения вполне логично)))
0
V0v1k
1159 / 983 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
23.02.2013, 02:46 #12
значит все таки я ошибся и можно читать преференсы других приложений если они выставили соответствующий мод...
0
YAUHEN
146 / 128 / 6
Регистрация: 29.07.2008
Сообщений: 506
23.02.2013, 10:07 #13
или подгружать с третьего ресурса. но так обычно делают когда часто меняется
0
23.02.2013, 10:07
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.02.2013, 10:07
Привет! Вот еще темы с ответами:

Как и куда сохранить текст из текстового поля - VBA
Добрый день! Подскажите как сделать. Есть текстовое поле с текстом по умолчанию. Нужно, чтобы при изменении этого поля введенный новый...

Сложное наследование (sealed internal а-ля protected internal) - C#
Приветствую Вас и прошу оказать содействие Вопрос связан с наследованием. Есть 2 тяжелых случая: 1й: Есть 2 класса A1 и A11:A1,...

Desktop и Рабочийстол, куда сохранить? - Delphi
Уважаемые программисты, прошу Вашей помощи. Мне необходимо сохранить файл на рабочий стол. Я делаю так ...

Куда нужно сохранить модуль? - Free Pascal
Куда сохранять модули в фри паскале что бы работали? Или в турбо паскале.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru