web-dev-qa-db-ja.com

「SHAREit」Androidアプリケーションは技術的にどのように機能しますか?

Android "SHAREit"のようなwi-fiを使用してデータ共有アプリケーションを構築したいのですが、どこから始めたのかわかりませんでした。

したがって、「SHAREit」の技術的概念を明確にした場合、理解するのは非常に効率的でした。

  1. ファイルを送信したいときに、名前のある利用可能な受信デバイスを見ました。
    • 名前はSSIDまたはその他として表示されていますか?
    • 送信者のデバイスに表示する名前やその他の情報をブロードキャストする方法
  2. ファイルを送信するデバイスを選択すると、どうなりますか?
  3. [〜#〜] api [〜#〜]実際に私は何に使うことができ、何のために簡単に説明してください。

実行できるすべてのリソースとリンクをテストしてください。

17
Rashed Shaon

Android Wi-Fi P2Pライブラリ、および このページのドキュメントから開始 を使用してください。基本的に、各デバイスは、ユーザーID情報などを含むことができるDNS-SD TXTを送信します。デバイスは、ソケットを確立することなくそのコンテンツを表示できます。要件の項目2を達成するために後で行うことです。

4

SHAREthemというライブラリを記述して、SHAREitは機能します。ライブラリは、WiFi Hotspotを使用してデバイス間のP2Pファイル共有と転送を容易にします。また、レシーバーにアプリがインストールされていない場合は、app to web sharingもサポートしますWiFi Hotspotを使用したファイル共有に関連する技術を理解するのに役立つことを願っています。

このライブラリには多くの可動部分があるため、実装の詳細で blog を作成しました。ここでいくつかのコンポーネントをカバーしようとします:

  • HotspotController

    HCはJava Reflectionを使用します。これは、Androidでホットスポットを有効/無効にするためのAPIがないためです。機能には次のものがあります。

    • コントローラは、ポートと送信者名を含むSHAREthem送信者を認識するために受信者が傍受できるSSIDを持つOPEN Wifiホットスポット設定を作成します。

    • 共有モードが無効になっているときにユーザーのホットスポット設定を復元します

    • 接続されているWiFiクライアントのリストを提供します。

  • SHAREthemサーバー

    NanoHttpdから拡張された小さなHTTPサーバーは、IPアドレスをホスト名として使用して受信者に送信者データを提供し、デフォルトでユーザーまたはシステムによって割り当てられたポートで動作します。

  • SHAREthemサービス

    SHAREthem-serverのライフサイクルを管理し、停止アクションでフォアグラウンド通知を処理するAndroidサービス。

  • UI(アクティビティ)

    共有/受信アクションを処理するAndroidアクティビティ

    • Receiver-ダウンロード可能なファイルをリストするUIを提供します。 Android Download Managerにダウンロード要求を送信して、ファイルのダウンロードを開始します。

    • 送信者-接続された各クライアント(受信者)のファイル転送ステータスとともに、IP、ポート、および接続されたクライアントの情報を表示します。

    Receiver Listing fragment displaying all downloads from SenderShare Activity displaying clients info and transfers statusWeb Receiver

6
CodeFury