Обновление данных в автономном приложении

Я разрабатываю приложение для Android для туристического сектора. Все данные доступны в автономном режиме без подключения к Интернету. Приложение включает в себя карту, данные которой также доступны только в автономном режиме. Итак, для этого я использую Openstreetmap с osmdroid, и все необходимые данные карты включены в файл приложения. Единственное действие, которое может подключиться к Интернету, — это при запуске приложения проверить наличие новых доступных данных и, в конечном итоге, загрузить новые данные в папки приложения.

Я добавил блок-схему представлений: введите здесь описание изображения

Моя проблема в том, как я могу сделать только первое действие, которое является действием запуска (красный блок на изображении), подключиться к Интернету и быть уверенным, что все остальные действия ни в коем случае не смогут подключиться к Интернету. Потому что очень важно, чтобы мои действия с Openstreetmap могли не подключаться к Интернету для загрузки новых фрагментов карты, когда пользователь прокручивает область интегрированных карт. Он не предназначен для полного отключения сетевого подключения для всего устройства Android, поэтому он также отключен для других приложений.

Заранее большое спасибо!


person pinyin_samu    schedule 19.03.2012    source источник


Ответы (2)


Если вы объявите

   <uses-permission /> 

для Интернета в манифесте, то это применимо ко всем действиям. Вы не можете ограничивать то, что делают внешние библиотеки. Так что старайтесь использовать доверенные библиотеки.

person Sadeshkumar Periyasamy    schedule 19.03.2012

Спасибо за ваш ответ!

Но я решил свою проблему сам.

Я знаю, что могу использовать. Это действительно было моей проблемой, что также экран с картами загружает новые данные из сети, если необходимые фрагменты карты еще не сохранены локально.

Наконец-то я нашел способ выбрать источник фрагментов карты в osmdroid: локально сохраненные фрагменты или загрузить их из Интернета. В классе OpenStreetMapTilesOverlay osmdroid-android-xxx.jar у вас есть этот метод для установки источника плитки:

/**
     * Set whether to use the network connection if it's available.
     * @param aMode
     * if true use the network connection if it's available.
     * if false don't use the network connection even if it's available.
     */
    public void setUseDataConnection(boolean aMode) {
            mTileProvider.setUseDataConnection(aMode);
    }

Итак, я реализовал этот код, чтобы использовать только фрагменты автономной карты:

 mapView.setUseDataConnection(false);

где mapView — мой OSM MapView

Приятного развития!

person pinyin_samu    schedule 20.03.2012