Используйте встроенную базу данных в приложении в телефоне Android - PullRequest
0 голосов
/ 20 марта 2012

Я сделал приложение для Android. Я использую базу данных в нем. Я установил файл .apk на свой телефон, и он работает нормально. Но это не показывает мне никаких данных, которые я ввел в базу данных, пока я был на эмуляторе. Мне нужно использовать таблицы базы данных, заполненные ранее. Моя база данных не создается во время выполнения. Как я могу получить базу данных на своем телефоне, чтобы приложение прекрасно работало с базой данных?

Ответы [ 2 ]

1 голос
/ 20 марта 2012

Вы можете сохранить файл базы данных в каталоге assets или res/raw, при первом запуске приложения скопируйте этот файл базы данных в /data/data/com.company.yourapp/databases/ и откройте свою базу данных, как обычно.

Разница междусохранение файлов в каталогах assets и res/raw означает, что файлы в res/raw сжимаются, а файлы в assets - нет.И файлы под res/raw не могут превышать 1 МБ до Android 2.3.Поэтому я бы посоветовал вам сжать файл базы данных самостоятельно и сохранить его в assets, а в своем коде распаковать файл, используя GZIPInputStream.

0 голосов
/ 20 марта 2012

Если вам нужна ваша база данных вне приложения для тестирования, тогда я думаю, что вы должны экспортировать ее в свою SDCard.

public static void exportfile(String applicationPackageName,String databaseName,String pathOfFolder) throws FileNotFoundException, IOException
    {
                InputStream myInput;

                myInput = new FileInputStream("/data/data/"+applicationPackageName+"/databases/"+databaseName);

                File directory = new File("/sdcard"+pathOfFolder);

                if (!directory.exists()) 
                {
                    directory.mkdirs();
                } 

                OutputStream myOutput = new FileOutputStream(directory.getPath()+"/"+databaseName);

                byte[] buffer = new byte[1024];
                int length;
                while ((length = myInput.read(buffer))>0)
                {
                    myOutput.write(buffer, 0, length);
                }

                myOutput.flush();
                myOutput.close();
                myInput.close();

    }

applicationPackageName: - имя пакета приложения

databaseName: - имя файла базы данных

pathOfFolder: - путь к папке, куда следует экспортировать файл в SDCard

не забудьте добавить <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> в файл манифеста.

И загрузите любой SQLite Manager, чтобы открыть этот файл.

Спасибо .. надеюсь, он вам поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...