Мобильное устройство обнаруживается как не мобильное устройство

Таким образом, первопричина этого, на первый взгляд, появляется в сторонней библиотеке. Если я не ошибаюсь, Tagit от Mobeix удаляет базу данных при запуске приложения. Я добавил подробное ведение журнала SQLite, включая следующие политики:

    StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder()
    .detectLeakedSqlLiteObjects()
    .detectLeakedClosableObjects()
    .penaltyLog()
    .penaltyDeath()
    .build());

В журнале я заметил, что после того, как я создал и открываю мою базу данных, я отсоединяюсь. Более подробное ведение журнала указывает, что это происходит, когда библиотека Mobeix инициализируется. Оскорбительная строка:

01-29 13:47:49.118: W/SQLiteLog(12120): (28) file unlinked while open: /data/user/0/com.company.app/databases/MyDatabase.db

Так что мой файл базы данных отсоединен. Weird. Следующий вызов getWritableDatabase () воссоздает его снова, и тогда это нормально, пока приложение не будет убито и перезапущено, после чего оно будет удалено и восстановлено.

Я обновлю это, если когда-либо выясню точно , что вызывает unlink.

6
задан Andrei Rînea 15 November 2009 в 13:52
поделиться

3 ответа

Некоторые не распознаны, потому что UserAgent был смешан с, или используется новый браузер. Такой как Opera Mobile 9.5. Для фиксации этого, необходимо создать Браузер (*.browser) файл специально для определения этого. Я должен был сделать это для нового Mozilla, базирующегося UserAgent, который отправляется от Google.

2
ответ дан 17 December 2019 в 00:17
поделиться

Я думаю, что необходимо использовать другой DDR лучше, чем Microsoft Browser Capabilities. Я использую http://wurfl.sourceforge.net> WURFL, это - открытый исходный код, и возможно он более расширяется и обновляется. Существует другой коммерческий DDRs как DeviceAtlas.

Существуют много некоторые библиотеки .NET, но я использую Marg. Wurfl. Это позволяет рендерингу веб-мобильной страницы с помощью wurfl возможности.

1
ответ дан 17 December 2019 в 00:17
поделиться

По моему скромному мнению: значение HttpContext.Current.Request.Headers("User-Agent") намного более безопасная ставка, поскольку она на самом деле указывает на браузер, который выполняет запрос а не тип серовато-синего устройства.

Я учился на опыте что, если смартфон выполняет запрос через сторонний браузер к Вашему сервису, как правило, какой-либо вид, "какое устройство - Вы" тест (HttpCapabilitiesBase.IsMobileDevice и/или HttpContext.Current.Request.Browser.IsMobileDevice) перестанет работать.

К сожалению, хотя, за исключением большого списка позволенных агентов пользователя (или запрещенных агентов пользователя в этом отношении), необходимо будет просто удостовериться, что он не запускается с Mozilla, iPhone или Opera перед рендерингом страницы...

Это - твердая арена для проигрывания в.
Удачи.

4
ответ дан 17 December 2019 в 00:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: