“SHAREit”Android应用程序如何在技术上运作?

时间:2015-01-11 05:41:23

标签: android android-wifi

我想在Android上使用wi-fi构建数据共享应用程序,例如" SHAREit"但我没有得到我从哪里开始。

所以如果有任何明确我的技术概念" SHAREit"理解它非常有效。

  1. 当我们想要发送文件时,我们看到了可用的名称接收器设备。
    • 名称是否显示为SSID或其他?
    • 我们如何广播要在发件人设备上显示的姓名和其他信息?
  2. 当我选择要发送文件的设备时会发生什么?
  3. 实际上我可以使用什么 API ,请简单解释一下。
  4. 请提供我可以运行以测试的所有资源和链接。

2 个答案:

答案 0 :(得分:6)

我尝试编写一个名为 SHAREthem 的库来模拟 SHAREit 的工作原理。 库使用 WiFi热点促进设备之间的P2P文件共享和传输。如果接收器没有安装应用,它还支持应用到网络共享。希望有助于您了解使用WiFi Hotspot进行文件共享所涉及的技术。

由于此库中有许多移动部件,因此我使用实现细节制作了blog。将尝试在此处介绍几个组件:

  • <强> HotspotController

    HC使用Java Reflection,因为Android上没有可用于启用/禁用热点的API。功能包括:

    • 控制器创建一个带有SSID的OPEN Wifi热点配置,该SSID可以被接收方截获,以识别SHAREthem发件人,包括端口和发件人名称。

    • 禁用共享模式时恢复用户热点配置

    • 提供已连接的WiFi客户端列表。

  • 分享服务器

    从NanoHttpd扩展的微型HTTP服务器,使用IP地址作为主机名将发送方数据提供给接收方,默认情况下在用户或系统分配的端口上工作。

  • 分享服务

    Android服务,负责管理SHAREthem服务器的生命周期,并通过停止操作处理前台通知。

  • 用户界面(活动)

    处理共享/接收操作的Android活动

    • Receiver - 提供用户界面列出可供下载的文件。帖子 向Android Download Manager下载请求以启动文件 下载。

    • 发件人 - 显示IP,端口&amp;连接客户端信息和文件 每个连接客户端(接收方)的传输状态。

    Receiver Listing fragment displaying all downloads from Sender Share Activity displaying clients info and transfers status Web Receiver

答案 1 :(得分:4)

使用Android Wi-Fi P2P图书馆和start with the doc on this page。它告诉您如何使用Wi-Fi P2P进行服务发现,它可以满足您的要求中的第1项。基本上,您可以让每个设备发送一个DNS-SD TXT,其中包含用户ID信息等。设备可以查看其内容,而无需建立套接字,这是您稍后在您的要求中完成第2项所做的工作。