私はAndroidアプリケーションを構築しようとしています。
このアプリケーションの目的は、最初のAndroidデバイスが2番目のAndroidデバイスでリモートで次のアクションを実行できるように2つのAndroidデバイスを「ペアリング」することです
。1。カメラを使用して写真/ビデオを撮る
2.電源を入れる/テープレコーダーをオフにする
3.GPSを使用して電話の現在位置を
取得する次のことを理解するのに少し役立つかどうか疑問に思いました
。1。通常のデバイス(ルート化されていない)で上記のアクションを実行できますか?
2. p2p接続を確立して上記のアクションを実行できますか、それともサードパーティのサーバーを使用してすべてのリクエストを処理する必要がありますか?
3.サーバーを使用してリクエストを処理する場合、接続を設定するための最良の方法は何ですか?
関連するAPIにリダイレクトしていただければ幸いです。
ありがとう!
2 に答える
テープレコーダーのオン/オフを切り替える
私は実際に「テープ」(ひびの入ったケースを持っている人は少ない)を持っているAndroidデバイスを知らないので、これを「オーディオを録音する」と翻訳します。
これは、通常のデバイス(ルート化されていない)で上記のアクションを実行することは可能ですか?
もちろん。MediaRecorder
オーディオ/ビデオ(またはCamera
静止画)に使用しLocationManager
、GPSに使用します。いくつかの権限が必要になります。これらの権限は、インストール時にユーザーが同意する必要があります。
p2p接続を確立して上記のアクションを実行できますか、それともサードパーティのサーバーを使用してすべてのリクエストを処理する必要がありますか?
インターネット上では事実上何も真のP2Pではありません。特に、モバイルデバイスで真のP2Pを実行する唯一の方法は、それらが同じWiFiネットワーク上にあり、相互に直接アドレス指定できる場合です。それでも、すべての訴訟を処理するための非常に大規模な法的防衛基金がない限り、モバイルデバイスでポートを開いている(あるアプリを別のアプリに接続できるようにするために必要)ことはあまり良い考えではありません。
より実用的なアプローチは、イベントをトリガーするプッシュ通知にGCMを使用することです。
サーバーを使用してリクエストを処理する場合、接続を設定するための最良の方法は何ですか?
インターネットを使って。それを超えて、無数の「サーバー」があるので、答えることは不可能です。
- はい、可能です。
- 理論的にはP2Pは可能ですが、モバイル事業者がNATまたはファイアウォールを使用している場合に発生するあらゆる種類のネットワーク問題を処理する必要があります。
- HTTPはモバイルデバイスで最も一般的で堅牢であるため、HTTPを使用します。pubnubなどのメッセージングシステムを提供するIaaSの使用を検討してください。これにより、多くのトラブルを回避でき、コストもそれほどかかりません。