EDITAR:
Estoy creando una biblioteca de uso compartido de archivos que se puede utilizar para implementar la función de uso compartido de archivos en las aplicaciones de Android. Aquí está el enlace de repositorio de GitHub: Android-File-Share / FileShare
————————————————————————————————————————————
Dudo si la aplicación Share It usa WiFi Direct ahora. Lo leí en alguna parte, que era una característica adicional junto con el método de compartir puntos de acceso. Pero ahora en la última versión, no veo ninguna opción en la aplicación para compartir archivos usando WiFi Direct y nunca he tratado de ver si hay un método WiFi Direct para compartir en versiones anteriores.
Déjame explicarte el método de compartir puntos de acceso.
Bueno, yo mismo he creado una aplicación para compartir archivos. Se trata de conceptos de redes. Hay un receptor y un remitente. Uno de ellos crea un punto de acceso WiFi. Y el otro se conecta a él. Ahora se forma una red local. Ambos tendrán direcciones IP. Ahora, el remitente puede seleccionar un archivo y luego hacer clic en enviar. El archivo se transfiere a través de TCP y el receptor se identifica por la dirección IP (TCP: lo adivino. Es porque cuando probé UDP yo mismo, se perdieron muchos paquetes. Muchos).
Ahora, la parte de alta velocidad, bueno, el archivo en realidad se envía en fragmentos, y el progreso se muestra en función de la cantidad de fragmentos enviados.
La aplicación Share It optimiza el tamaño del fragmento, supongo, y supongo que también se optimiza al leer el archivo en el lado del remitente y escribir el archivo en el lado del receptor. No se como. Estoy experimentando en ello, para mi aplicación y tengo algunas características adicionales para agregar.
Pero he creado mi aplicación con conceptos simples y he logrado velocidades de hasta 6 MB / s.
Y la velocidad máxima del enlace cuando se conecta a un punto de acceso de Android, generalmente es de 65 Mb / s, que es de aproximadamente 8 MB / s (tenga en cuenta la ‘b’ y la ‘B’. B – Byte. B – bit.), Puede haber dispositivos que tienen mejores tarjetas NIC WiFi que proporcionan una mejor velocidad máxima de enlace. Por lo tanto, incluso si utiliza el ancho de banda completo y envía el archivo, se enviará a una velocidad de aproximadamente 8 MB / s. Entonces, creo que en mi aplicación, incluso 6 MB / s es bueno. ¡Y la velocidad de intercambio depende de muchos factores! Aquí hay algunos que descubrí en base a mis experimentos (así que, básicamente, son solo teorías. Pero encontré una buena razón en las teorías):
1. Velocidad de enlace de la conexión. La velocidad del enlace difiere según la distancia entre los dispositivos. Quiero decir, se basa en la intensidad de la señal WiFi. Es por eso que usé la palabra “máximo” junto con “velocidad de enlace”.
2. Velocidad de lectura del almacenamiento interno o la tarjeta SD, donde se guarde el archivo (en el lado del remitente) y velocidad de escritura del almacenamiento interno o la tarjeta SD en el lugar donde se almacenará el archivo (en el lado del receptor)
3. Tamaño de los trozos que se envían
4. Cuánto ancho de banda está utilizando la aplicación para enviar el archivo. Es bueno si puede utilizar el ancho de banda máximo. Es porque encontré algunas cosas que realmente pueden evitar que la aplicación use el ancho de banda completo. Por ejemplo, cuando un receptor se conecta al punto de acceso del remitente, algunas de las aplicaciones en el receptor que se ejecutan en segundo plano detectarán este WiFi (detectan cada vez que se cambia el estado de la red del dispositivo) y piensan que es una conexión a Internet e intentarán envía solicitudes a sus servidores para obtener datos para mostrar notificaciones, pero solo después de intentar enviar una buena cantidad de solicitudes, comprenderá que no hay conexión a Internet. Y dejará de intentar enviar solicitudes. Habrá muchas aplicaciones como esta. Por ejemplo, Whatsapp, Hike, YouTube, etc. Dado que estas solicitudes están intentando enviarse, en realidad usa el ancho de banda de la conexión y nuestra aplicación para compartir no podrá usar el ancho de banda completo.
Si eres un desarrollador de aplicaciones de Android y quieres saber cómo codificar y esas cosas. Primero, debes aprender la programación de sockets en Java y probarlos a nivel de PC. Luego, aprenda cómo implementar operaciones de red en Android, no puede simplemente ingresar el código Java que probó en la PC, debe usar hilos o servicios y hacer algunas cosas adicionales. Pregúntame si te gustan esas cosas y quieres saber más.