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

Записать базу на карту памяти - Android

Восстановить пароль Регистрация
 
Digetix
104 / 104 / 1
Регистрация: 09.04.2012
Сообщений: 647
26.11.2013, 16:31     Записать базу на карту памяти #1
Как правильно прописать путь к базе данных? То есть при запуске создать файл базы данных на карте памяти и в дальнейшем с ним работать.
Как учитывать, что есть устройства с картой памяти, а со большой встроенной памятью?

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
class DBHelper extends SQLiteOpenHelper { 
         
        public DBHelper(Context context) {        
              super(context, "/sdcard/"+DATABASE_NAME, null, 1);               
              String newFolder = "/newFolder"; 
              String extStorageDirectory = Environment.getExternalStorageDirectory().toString(); 
              File myNewFolder = new File(extStorageDirectory + newFolder); 
              myNewFolder.mkdir(); 
              SQLiteDatabase.openOrCreateDatabase("/sdcard/newFolder/"+DATABASE_NAME,null); 
        } 
 
        @Override 
        public void onCreate(SQLiteDatabase db) { 
          db.execSQL("create table mytable (" 
              + "id integer primary key autoincrement," 
              + "email text" + ");"); 
        } 
 
        @Override 
        public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 
 
        } 
      }
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.11.2013, 16:31     Записать базу на карту памяти
Посмотрите здесь:

Маркер на google карту Android
Android Не получается сохранить файл на SD карту
Установка/перенос приложения на SD карту Android
Скачать файл из сети на SD карту Android
Android Вывести метку на карту google
Android Как позволить установку приложения на карту памяти?
Android Добавление картинки на карту GoogleMap
Не отображает карту Android
Карту упаковать в установочник apk Android
Android Передача координат на карту Google
Android Перенос приложения на SD карту
Как разместить карту на Fragment Android

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
YuraAAA
 Аватар для YuraAAA
1563 / 1305 / 269
Регистрация: 25.10.2009
Сообщений: 3,424
Записей в блоге: 2
26.11.2013, 20:09     Записать базу на карту памяти #2
Запись базы на карту:
Вместо
"/sdcard/"+DATABASE_NAME
пишите
Java
1
2
3
Environment.getExternalStorageDirectory()
                + File.separator + "/DataBase/" + File.separator
                + DATABASE_NAME
Проверка на СД-карту

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
boolean mExternalStorageAvailable = false;
boolean mExternalStorageWriteable = false;
String state = Environment.getExternalStorageState();
 
if (Environment.MEDIA_MOUNTED.equals(state)) {
    // Мы можем читать и писать на неё
    mExternalStorageAvailable = mExternalStorageWriteable = true;
} else if (Environment.MEDIA_MOUNTED_READ_ONLY.equals(state)) {
    // Только читать
    mExternalStorageAvailable = true;
    mExternalStorageWriteable = false;
} else {
    // Не можем ничего делать. Возможно карты нет
    mExternalStorageAvailable = mExternalStorageWriteable = false;
}
Digetix
104 / 104 / 1
Регистрация: 09.04.2012
Сообщений: 647
26.11.2013, 23:37  [ТС]     Записать базу на карту памяти #3
Спасибо, всё работает. А как узнать и имеет ли смысл узнавать есть ли карта памяти в устройстве?
YuraAAA
 Аватар для YuraAAA
1563 / 1305 / 269
Регистрация: 25.10.2009
Сообщений: 3,424
Записей в блоге: 2
27.11.2013, 12:29     Записать базу на карту памяти #4
Цитата Сообщение от Digetix Посмотреть сообщение
А как узнать и имеет ли смысл узнавать есть ли карта памяти в устройстве?
Хэх, ну это уже от Вашей задачи зависит. Я обычно создаю базу в кэше приложения. Куда пользователь установил приложение - там и будет база. Обычно БД не занимает много места (если Вы, конечно, не собираетесь хранить там кучу тяжёловесных blob).
Создание базы в кэше приложения - просто:
Java
1
super(context, DATABASE_NAME, null, 1);
Digetix
104 / 104 / 1
Регистрация: 09.04.2012
Сообщений: 647
27.11.2013, 12:59  [ТС]     Записать базу на карту памяти #5
Цитата Сообщение от YuraAAA Посмотреть сообщение
ну это уже от Вашей задачи зависит
В общем у меня такая задача, есть сервис parse.com, там есть моя база данных (таблица с 2000 строк, 5 столбцов, только текст). Я хочу при установке и при первом запуске "закачать" базу в устройство и при последующих запусках использовать локальную базу. При каждом запуске буду сверять версии баз данных и если нужно обновлять её. Так вот и прошу от вас совета, как лучше поступить и где разместить базу?
Yandex
Объявления
27.11.2013, 12:59     Записать базу на карту памяти
Ответ Создать тему
Опции темы

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