2011-09-21 12 views
0

私はthis questionを読んで、同じことが自分の状況に当てはまるのだろうかと思った。異なるアプリケーションを実行する2つのAndroidデバイスで同じSQLiteデータベースを使用できますか?

IはdatabaseAndroid電話からaccelerometer値(xYZ)を書いて、経時的に変化する値のグラフを表示するために錠剤上の別のアプリケーションでそれを取得します。これはリアルタイムで発生する必要はありません。

だから基本的に私の質問は以下のとおりです。

1)二つの異なるAndroidデバイス上の2つの異なるアプリケーションが同じSQLiteデータベースを使用することができますか?携帯電話上の1つのアプリは、指定されたデータベースへの書き込みやタブレット上の他のアプリは、同じ指定されたデータベースから読み込むように

2)どのように私はIPを指定するのですか?

私はすでにAccelerometerの値を読むことができますが、グラフを作成する方法は分かっていますが、私のプロジェクトのデータベースコンポーネントに問題があります。その理由は、デバイスのSD cardデバイス自体にのみアクセス可能で、他のアプリケーションやデバイスにはアクセスできないデータベース。

私が最初にContentResolverを取得することによってstatic IPの指定について読んだ:

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_SETTINGSWRITE_SECURE_SETTINGSを。

しかし、私は正確にこれを書いているか、それを正しく使用する方法がわかりません。 データベースの設定に関する詳細と2つの異なるアプリケーションで2つの異なるAndroidデバイスでどのように使用できるかを教えてください。

ありがとうございます。

P.S.私はすぐにこの質問をいくつかのコードで更新します。

+0

あなたがそれを避けることができるときにネットワーク設定を混乱させないでください。あなたの嫌いな人は、1)あなたのアプリがタブレットで起動したときにIPアドレスを表示し、 2)[JmDNS](http://jmdns.sourceforge.net/)を介してzero-confネットワークのような完全に自動化されたものを使用してください(より多くの作業) –

答えて

4

二つの異なるAndroidデバイス上の2つの異なるアプリケーションが同じSQLiteデータベースを使用できますか?

2つの異なる大陸で動作するWebサーバーは、同じMySQLデータベースを使用できません。ファイルシステムにアクセスできるデバイス上で実行されているプロセスだけが、そのファイルを読み書きできます。

電話機の1つのアプリケーションが指定されたデータベースに書き込みを行い、タブレットの他のアプリケーションが同じ指定されたデータベースから読み取るようにIPを指定するにはどうすればよいですか?

あなたはありません。 Androidはサーバープラットフォームではありません。

は最高で、あなたは、両方のデバイスが同じWiFiのLAN上にある場合は、これをやってのけることができるかもしれない、とあなたは一つのデバイスからデータベースを公開するWebサービスを記述します。これは、もちろん、ファイアウォールなどの恩恵を受けることなく、Webサーバーと同じセキュリティ問題に晒されます。

Iは、データベースへのAndroidの携帯電話から加速度値(a x、y及びz)を書いて、経時的に変化する値のグラフを表示するために錠剤上の別のアプリケーションでそれを取得します。これはリアルタイムで発生する必要はありません。

したがって、同じデータベースにアクセスするために2つのデバイスは必要ありません。あなたは彼らが同じデータで作業する必要があります。

だから、あなたは携帯電話は、Webサービスを介して、いくつかのサーバーにデータを送信していて、タブレットがWebサービスを介して、そのサーバーからデータを取得する可能性があります。

または、携帯電話を持っては、Bluetooth経由でタブレットにデータを送信します。

セキュリティが十分であると感じる場合は、携帯電話が使用するWiFi経由でタブレットにWebサービスを公開してもらいます(特に、タブレットが移動などによって他のネットワークに参加する可能性があります) 。

いずれの場合でも、電話機もタブレットでも、にはデータベースがありますが、それを直接共有しようとしません。

+0

これに同意して同様の回答を準備していました。タブレットは、Webサービスを公開するためとして、それは[nanohttpd] [1]を見てみる価値だ、サブクラス化し、それをカスタマイズする方法の例があります。 –

+0

ありがとうございました。私は私と一緒に仕事をしている人に話をし、彼は何か似たような提案をしました。彼は私がXMLファイルに携帯電話からのデータ値を書き込み、電子メール/ブルートゥース/ FTP経由でタブレットにxmlファイルを送信するべきであると述べました。タブレットは、ファイルを使用して結果のグラフを作成するだけです。これは、データベースと1つのデータベースの情報を共有する2つのデバイスに関する問題を必要としません。あなたの返事をありがとう。 – marienke

0

SQliteデータベースは、それを作成するアプリケーション専用です。他のアプリケーションとデータを共有する場合は、コンテンツプロバイダを使用できます。