2011-09-21 3 views
0

Я читал this question и задавался вопросом, применимо ли то же самое к моей ситуации.Может ли две Android-устройства, работающие с разными приложениями, использовать одну и ту же базу данных SQLite?

Я хочу написать accelerometer значения (х, Y и г) из Android телефона на database и получить его с другим приложением на планшете, чтобы отобразить график значений изменяющихся во времени. Это не должно происходить в режиме реального времени.

Так в основном мои вопросы:

1) могут два разных приложения на двух разных Android устройств используют ту же базу данных SQLite?

и

2) как я укажу IP так, чтобы одно приложение на телефоне пишет в указанную базу данных и другие приложения на планшете считывает с той же указанной базы данных?

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

Я прочитал об указании static IP сначала получения ContentResolver:

ContentResolver cr = getContentResolver(); 

затем адаптируя settings:

Settings.System.putString(cr, Settings.System.WIFI_USE_STATIC_IP, "1"); 
Settings.System.putString(cr, Settings.System.WIFI_STATIC_IP, "6.6.6.6"); 

, а затем позволяет permissions: WRITE_SETTINGS и WRITE_SECURE_SETTINGS.

но я не уверен, где именно написать это или как правильно его использовать.

Просьба направлять меня туда, где я могу найти дополнительную информацию о создании баз данных SQLite и о том, как она может использоваться двумя различными приложениями на двух разных устройствах Android?

Заранее спасибо.

P.S. Я скоро обновлю этот вопрос с некоторыми из моего кода.

+0

Не связывайтесь с сетевыми настройками, когда вы можете этого избежать, ваши пользователи будут вас ненавидеть - либо 1) отображать IP-адрес, когда ваше приложение запускается на планшете, и запрашивает его в приложении для телефона, либо 2) используйте что-то полностью автоматическое, например, с помощью no-conf через [JmDNS] (http://jmdns.sourceforge.net/) (больше работы) –

ответ

4

Может ли два разных приложения на двух разных устройствах Android использовать одну и ту же базу данных SQLite?

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

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

У вас нет. Android не является серверной платформой.

В лучшем случае вы можете снять это, если оба устройства находятся в одной и той же WiFi-сети, и вы пишете веб-службу, которая предоставляет базу данных с одного устройства. Это, конечно же, предоставляет вам те же проблемы безопасности, что и у вас с веб-сервером, без использования брандмауэров и т. П.

Я хочу записать значения акселерометра (x, y и z) с телефона Android в базу данных и получить его с помощью другого приложения на планшете, чтобы отобразить график значений, меняющихся со временем. Это не должно происходить в режиме реального времени.

Следовательно, вам не нужны два устройства для доступа к одной базе данных. Вам нужно, чтобы они работали с теми же данными.

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

Или отправьте данные на планшет по телефону через Bluetooth.

Или, если вы считаете, что безопасность адекватна, планшет выставляет веб-сервис через WiFi, который использует телефон (хотя это действительно пугает меня, особенно если планшет может присоединиться к другой сети, например, будучи перемещен) ,

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

+0

Согласитесь с этим и готовили аналогичный ответ. Что касается планшета, демонстрирующего веб-сервис, стоит взглянуть на [nanohttpd] [1], есть пример того, как подкласс и настроить его. –

+0

Хорошо, спасибо большое. Я разговаривал с парнем, работающим со мной, и он предложил нечто подобное. Он сказал, что я должен написать данные с телефона в файл xml, а затем отправить XML-файл на планшет по электронной почте/bluetooth/ftp. Затем планшет может просто использовать файл для создания полученного графика. Для этого не требуется база данных и любые проблемы с двумя устройствами, использующими информацию одной базы данных. Спасибо за ваши ответы. – marienke

0

База данных SQlite является частной для приложения, которое ее создает. Если вы хотите обмениваться данными с другими приложениями, вы можете использовать Content Provider.