Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
104 / 104 / 1
Регистрация: 09.04.2012
Сообщений: 655
1

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

26.11.2013, 16:31. Просмотров 1193. Ответов 4
Метки нет (Все метки)

Как правильно прописать путь к базе данных? То есть при запуске создать файл базы данных на карте памяти и в дальнейшем с ним работать.
Как учитывать, что есть устройства с картой памяти, а со большой встроенной памятью?

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) { 
 
        } 
      }
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.11.2013, 16:31
Ответы с готовыми решениями:

Форматировать карту памяти
как-то у меня глюканул телефон Nokia 6300, и все файлы на флешке(mini sd 128mb) стали не читаемы,...

Nokia N8 не видит карту памяти
Доброго времени суток, у меня такая проблема : Nokia N8 после переустановки программного...

Как восстановить карту памяти
Всем привет! меня зовут Анна. Помоги кто может. Спалила карту памяти. Получилось все так, начала...

Телефон не видит карту памяти
телефон N82,карта памяти 2gb micro sd .в чем проблема?Как можно отформатировать ее?

4
1602 / 1334 / 291
Регистрация: 25.10.2009
Сообщений: 3,487
Записей в блоге: 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;
}
2
104 / 104 / 1
Регистрация: 09.04.2012
Сообщений: 655
26.11.2013, 23:37  [ТС] 3
Спасибо, всё работает. А как узнать и имеет ли смысл узнавать есть ли карта памяти в устройстве?
0
1602 / 1334 / 291
Регистрация: 25.10.2009
Сообщений: 3,487
Записей в блоге: 2
27.11.2013, 12:29 4
Цитата Сообщение от Digetix Посмотреть сообщение
А как узнать и имеет ли смысл узнавать есть ли карта памяти в устройстве?
Хэх, ну это уже от Вашей задачи зависит. Я обычно создаю базу в кэше приложения. Куда пользователь установил приложение - там и будет база. Обычно БД не занимает много места (если Вы, конечно, не собираетесь хранить там кучу тяжёловесных blob).
Создание базы в кэше приложения - просто:
Java
1
super(context, DATABASE_NAME, null, 1);
0
104 / 104 / 1
Регистрация: 09.04.2012
Сообщений: 655
27.11.2013, 12:59  [ТС] 5
Цитата Сообщение от YuraAAA Посмотреть сообщение
ну это уже от Вашей задачи зависит
В общем у меня такая задача, есть сервис parse.com, там есть моя база данных (таблица с 2000 строк, 5 столбцов, только текст). Я хочу при установке и при первом запуске "закачать" базу в устройство и при последующих запусках использовать локальную базу. При каждом запуске буду сверять версии баз данных и если нужно обновлять её. Так вот и прошу от вас совета, как лучше поступить и где разместить базу?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.11.2013, 12:59

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Android не форматирует карту памяти
Samsung GT-S5570 Android 2.3.5 Открываю Настройки>Память. Пункт "Форматировать карту памяти"...

Перенос приложений на карту памяти
установлена обычная прошивка андроид 2.3.6. телефон samsung galaxy gio s5660. нужно переместить...

Смартфон не видит карту памяти
Здравствуйте. Возникла такая ситуация, что мой смартфон перестал видеть карту памяти. При...

Записать с контроллера на SD-карту
Гуглил. Находил. Компиллировал. Ругался. Ставил FatFS. Гуглил снова. Находил, компиллировал и снова...


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

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

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