Не удалось открыть базу данных геопозиции веб-просмотра Android

У меня есть веб-сайт, использующий API геолокации javascript, и я хочу, чтобы он открывался в веб-просмотре. Я установил эти разрешения в файле манифеста:

<uses-permission android:name="android.permission.ACCESS_GPS" />
<uses-permission android:name="android.permission.ACCESS_ASSISTED_GPS" />
<uses-permission android:name="android.permission.ACCESS_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>

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

webview.getSettings().setDatabaseEnabled(true);
webview.getSettings().setDomStorageEnabled(true);
webview.getSettings().setGeolocationDatabasePath("/data/data/com.my.app/databases");
webview.getSettings().setGeolocationEnabled(true);

И я также обрабатывал диалог геолокации javascript:

webview.setWebChromeClient(new WebChromeClient(){
    @Override
    public void onGeolocationPermissionsShowPrompt(String origin, GeolocationPermissions.Callback callback) {
        callback.invoke(origin, true, false);
    }
});

Сама геолокация работает, но я не могу кэшировать геопозицию в базу данных. Это должно быть сделано само по себе в CachedGeoposition.db, но когда я запускаю веб-просмотр, я получаю эту странную ошибку SQLite:

E/SQLiteLog(22653): (14) cannot open file at line 30174 of [00bb9c9ce4]
E/SQLiteLog(22653): (14) os_unix.c:30174: (2) open(/CachedGeoposition.db) -
D/WebKit  (22653): ERROR:
D/WebKit  (22653): SQLite database failed to load from /CachedGeoposition.db
D/WebKit  (22653): Cause - unable to open database file
D/WebKit  (22653):
D/WebKit  (22653): external/webkit/Source/WebCore/platform/sql/SQLiteDatabase.cp
p(71) : bool WebCore::SQLiteDatabase::open(const WTF::String&, bool)

Когда я проверяю наличие файла CachedGeoposition.db в проводнике, он всегда там, и разрешения db установлены на -rw -------.

Я что-то пропустил в настройках, из-за чего база данных могла открываться неправильно? Я новичок в Android и пытаюсь найти решение уже 2 дня. Любая помощь будет принята с благодарностью. Спасибо.

12
задан Andrej Lučanský 16 August 2012 в 13:36
поделиться