Как приложение "SHAREit" андроида работает технически?
Я хочу создать приложение для совместного использования данных на android, используя wi-fi типа "SHAREit", но я не получил, с чего начинаю.
Итак, если кто-нибудь из меня понял техническую концепцию "SHAREit", это было очень эффективно понять.
- Когда мы хотим отправить файл, мы увидели доступное приемное устройство с именем.
- Отображается ли имя как SSID или другое?
- Как мы передаем имя и другую информацию для отображения на устройстве-отправителе?
- Когда я выбираю устройство для отправки файла, что происходит?
- Что API, на самом деле я могу использовать и для чего, пожалуйста, просто объясните мне.
Пожалуйста, все ресурсы и ссылки, которые я мог бы запустить для тестирования.
Ответы
Ответ 1
Используйте библиотеки Wi-Fi P2P для Android, а начните с документа на этой странице. В нем рассказывается, как использовать Wi-Fi P2P для обнаружения сервисов, который отвечает требованиям пункта 1 в ваших требованиях. В принципе, каждое устройство передает DNS-SD TXT, который может содержать информацию о идентификаторе пользователя и т.д. Устройства могут видеть его содержимое без необходимости устанавливать сокет, и это то, что вы позже сделаете, чтобы выполнить пункт 2 в ваших требованиях.
Ответ 2
Я попытался написать библиотеку под названием SHAREthem, чтобы имитировать, как SHAREit работает.
Библиотека облегчает совместное использование файлов P2P и передачу между устройствами с помощью Точки доступа Wi-Fi. Он также поддерживает приложение для веб-обмена, если у получателя нет установленного приложения. Надеемся, что это поможет вам понять технические вопросы, связанные с совместным использованием файлов, используя точку доступа Wi-Fi.
Так как в эту библиотеку много движущихся частей, я создал блог с деталями реализации. Попробуем прикрыть несколько компонентов:
-
HotspotController
HC использует Java Reflection, так как на Android нет доступных API для включения/отключения горячих точек. Функциональные возможности включают:
-
Контроллер создает конфигурацию точек доступа OPEN Wifi с SSID, который может быть перехвачен приемниками для распознавания отправителей SHAREthem, включая имена портов и отправителей.
-
Восстанавливает пользовательскую Hotspot-Configuration, когда отключен режим Share.
-
Предоставляет список подключенных WiFi-клиентов.
-
Сервер SHAREthem
Крошечный HTTP-сервер, расширенный от NanoHttpd, обслуживает данные отправителя получателям, использующим IP-адрес в качестве имени хоста, и работает по умолчанию, назначенным пользователем или системой.
-
Служба SHAREthem
Служба Android, которая управляет жизненным циклом SHAREthem-сервера, а также обрабатывает уведомление переднего плана с действием остановки.
-
Пользовательский интерфейс (действия)
Действия Android для действий с share/receive
-
Receiver - предоставляет пользовательский интерфейс для отображения файлов, доступных для загрузки. Сообщений
запрос загрузки в Android Download Manager для запуска файла
загрузки.
-
Отправитель - отображает информацию о IP-адресе, порте и подключенных клиентах вместе с файлом
статус передачи для каждого подключенного клиента (приемника).
![Веб-приемник]()