web-dev-qa-db-fra.com

Comment l'application "SHAREit" Android fonctionne techniquement?

Je veux créer une application de partage de données sur Android en utilisant le wi-fi comme "SHAREit" mais je ne suis pas arrivé d'où je commence.

Donc, si quelqu'un me clarifie le concept technique de "SHAREit", il était très efficace à comprendre.

  1. Lorsque nous voulons envoyer un fichier, nous avons vu le périphérique récepteur disponible avec le nom.
    • Le nom est-il affiché comme SSID ou autre?
    • Comment diffusons-nous le nom et les autres informations à afficher sur l'appareil de l'expéditeur?
  2. Lorsque je sélectionne un appareil pour envoyer un fichier, que se passe-t-il?
  3. Qu'est-ce que API en fait je peux l'utiliser et pourquoi me l'expliquer simplement.

Veuillez toutes les ressources et les liens que j'ai pu exécuter pour tester.

17
Rashed Shaon

Utilisez les Android Wi-Fi P2P, et commencez par le document sur cette page . Il vous indique comment utiliser le Wi-Fi P2P pour la découverte de services, ce qui prend soin de l'élément 1 dans vos besoins. Fondamentalement, chaque appareil transmet un DNS-SD TXT qui peut contenir des informations d'ID utilisateur, etc. Les appareils peuvent voir son contenu sans avoir à établir de socket, ce qui est ce que vous ferez plus tard pour accomplir le point 2 selon vos besoins.

4
JASON G PETERSON

J'ai essayé d'écrire une bibliothèque appelée SHAREthem pour simuler comment = SHAREit fonctionne. La bibliothèque facilite le partage de fichiers P2P et les transferts entre les appareils en utilisant Hotspot WiFi . Il prend également en charge l'application pour le partage Web si le récepteur n'a pas d'application installée. J'espère que cela vous aidera à comprendre les aspects techniques du partage de fichiers à l'aide du point d'accès WiFi.

Puisqu'il y a beaucoup de pièces mobiles dans cette bibliothèque, j'ai fait un blog avec les détails d'implémentation. J'essaierai de couvrir quelques composants ici:

  • HotspotController

    HC utilise Java Reflection car il n'y a AUCUNE API disponible sur Android pour activer/désactiver les Hotspots. Les fonctionnalités incluent:

    • Le contrôleur crée une configuration de point d'accès Wi-Fi OUVERT avec un SSID qui peut être intercepté par les récepteurs pour reconnaître les expéditeurs SHARE, y compris les noms de port et d'expéditeur.

    • Restaure la configuration du point d'accès utilisateur lorsque le mode de partage est désactivé

    • Fournit une liste des clients WiFi connectés.

  • PARTAGEZ le serveur

    Un minuscule serveur HTTP étendu à partir de NanoHttpd, sert les données de l'expéditeur aux récepteurs en utilisant l'adresse IP comme nom d'hôte et fonctionne sur le port attribué par l'utilisateur ou le système par défaut.

  • PARTAGEZ le service

    Service Android qui gère le cycle de vie de SHAREthem-server et gère également les notifications de premier plan avec action d'arrêt.

  • UI (Activités)

    Activités Android pour gérer les actions de partage/réception

    • Récepteur - fournit une interface utilisateur pour répertorier les fichiers disponibles à télécharger. Publie une demande de téléchargement sur Android Download Manager pour démarrer le téléchargement des fichiers.

    • Expéditeur - affiche les informations IP, Port et clients connectés ainsi que le statut de transfert de fichiers pour chaque client connecté (récepteur).

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

6
CodeFury