- Взаимодействие Android-устройств в локальной сети
- О чем это и для кого это?
- Какие возможные способы решения существуют?
- Android передача файлов по локальной сети
- 7 лучших приложений, чтобы передать файлы с Андроид на ПК
- Передача данных WiFi
- InShare — Передача файлов, Перенос данных
- ShareMe
- EasyShare – Ultrafast File Transfer, Free & No Ads
- Bluetooth File Transfer
- WiFi File Transfer
- Catch! — Передача файлов для Android и ПК
Взаимодействие Android-устройств в локальной сети
Предположим, мы пишем игру для Android, которая подразумевает некое сетевое взаимодействие между устройствами. Причем наши устройства находятся в одной сети и мы хотим, чтобы взаимодействие между ними осуществлялось быстро, а значит вариант с обменом данными через интернет нам не подходит. Ах да, еще одна маленькая ложка дегтя — мы хотим охватить максимально возможную аудиторию, для чего нам необходимо поддерживать Android 2.3.
Что же нам делать? Давайте поговорим об этом, а заодно рассмотрим относительно новые возможности Android SDK для соединения двух и более устройств.
О чем это и для кого это?
Как-то раз, уйдя с предыдущего места работы и погрузившись в заслуженный отдых, я принялся писать сетевую игру, в которую могут играть люди, находящиеся в одной локальной сети. И сразу же столкнулся с тем, что для нормального функционирования подобной игры нам мало соорудить сетевое взаимодействие — нам нужно сделать нормальное и быстрое обнаружение устройств в сети. Собственно, в данной статье я поделюсь своим опытом в реализации решения для данной задачи.
Сразу оговорюсь, что статья предназначена в большей мере для тех, кто имеет опыт Android-разработки, написал несколько приложений и хочет расширить свой кругозор, а также улучшить профессиональные навыки.
Какие возможные способы решения существуют?
- Android Network Service Discovery. Простой и эффективный способ обнаружения устройств. На Android Developer есть пошаговое руководство по подключению NSD, есть пример NsdChat, который можно скачать там же. Но есть один существенный минус — данный метод поддерживается только начиная с API Level 16, то есть с Android 4.1 Jelly Bean;
- Второе решение, предлагаемое нам на сайте Android Developer — Wi-Fi Peer-to-Peer. Проблема этого метода та же самая — поддерживается он только начиная с API Level 16;
- Есть странное решение, которое предлагается некоторыми программистами на Stack Overflow — самостоятельно сканировать локальную сеть на предмет наличия сервера. То есть проходить по всем адресам сети. Это уже сейчас звучит как странный велосипед, а теперь представьте, что порт нашего сервера назначается автоматически. Таким образом, сканирование даже самую небольшой сети становится достаточно долгой и трудоемкой задачей;
- Наконец, мы можем обратить внимание на Java-библиотеки и написать что-нибудь с их использованием. Например, JmDNS.
Последний способ выглядит вполне адекватным и, кажется, может обеспечить нас требуемой скоростью и удобством обнаружения устройств в сети для конечного пользователя.
Я вооружился JmDNS и решил попробовать соорудить несколько классов, которые по максимуму упростят написание описанных выше приложений. Но для начала пришлось немного повырезать дубликаты .class-файлов из jar-пакета JmDNS (проблема описана здесь):
Далее я взял исходный код NsdChat с Android Developer и изменил его служебный класс, который отвечает за инициализацию сокетов и организацию сетевого взаимодействия. Также я написал wrapper для JmDNS
Здесь размещены 4 основные функции для работы Network Discovery:
- startServer для создания сервера и регистрации соответствующего сервиса в локальной сети;
- findServers для поиска серверов;
- reset для окончания работы с Network Discovery и последующего освобождения ресурсов;
- wifiLock для запроса блокировки Wi-Fi.
В завершении я написал универсальный класс ConnectionWrapper для полноценной организации обнаружения, а также обмена сообщениями в локальной сети. Таким образом, создание сервера в конечном приложении выглядит следующим образом:
А вот и mServerHandler, использующийся для приема и обработки сообщений:
Отправка сообщений еще проще:
И, наконец, метод для обнаружения и подключения к серверу:
Как видите, все очень просто. А главное, все это работает в любой версии Android для максимум двух устройств. Но сделать так, чтобы это работало для условно неограниченного числа устройств очень легко, и очевидное решение придет к вам почти сразу после детального изучения класса Connection. Пусть это будет в качестве домашнего задания.
Ах, да, весь код доступен для изучения и использования всеми желающими в моем репозитории на GitHub.. И, конечно, не исключаю то, что некоторые вещи можно сделать лучше и проще, поэтому не стесняйтесь форкать и делать pull request’ы.
Источник
Android передача файлов по локальной сети
Новые темы необходимо создавать только в корневом разделе! В дальнейшем они будут обработаны модераторами.
Копировать файлы с компьютера или ноутбука (далее ПК) на мобильное устройство (далее Андроид) и обратно требуется часто и (в случае больших файлов) проще всего это делать, используя Wi-Fi.
Основное требование: Все устройства (один или несколько ПК, Андроиды) должны быть подключены к одной сети!
- Простейший способ — SHARE it
Установите на все устройства SHARE it. Программа доступна на Андроид и Windows.
Логика интерфейса программы практически идентична на всех платформах.
На принимающем устройстве выберите «Принять», на отправляющем «Отправить», выберите необходимые для передачи данные и выберите устройство, на которое данные необходимо передать.
Получаем доступ с Андроида к файлам на ПК.
Для этого потребуется установить на Андроид файл-менеджер с поддержкой SMB (Samba). Я пользуюсь ES File Explorer, альтернативы: ASTRO File Manager с плагином Astro SMB Module, eFile, X-plore.
В ES File Explorer все несложно. Нужно перейти на вкладку «LAN», нажать кнопку Меню>Создать>Сканировать. После этого программа проверит весь диапазон IP-адресов и отобразит адреса компьютеров, имеющих папки с общим доступом. Также можно не сканировать сеть, а добавить сервер вручную, указав его IP, и, при необходимости, имя пользователя и пароль.
- Samba-сервер
Для примера используем Samba Server for Android, он позволяет работать с SD-картой коммуникатора, как с расшаренной папкой ПК. Для работы программы требуются root-права.
Устанавливаем и запускаем программу. При первом запуске будет выдана краткая инструкция по использованию. Первый шаг — задать пароль для доступа к ресурсам мобильного устройства. Для этого нажмите Menu>Settings>Password и введите пароль. Там же можно при желании сменить имя пользователя, а также указать рабочую группу (имя должно совпадать с именем рабочей группы в настройках ПК) и NetBIOS-имя Андроида (то, что будет отображаться в сетевом окружении на ПК). После настройки вернемся в главное окно программы и нажмем Menu>Enable. Это запустит сервер SAMBA на Андроиде.
- Часто проблемы с соединением ПК и Андроида вызваны блокировкой мультикаста (Block multicast) в настройках роутера. Отключите это ограничение.
- Для упрощения доступа можно настроить фиксированные IP-адреса для всех устройств локальной сети.[/b]
Если ПК (ноутбук) и Андроид получают IP-адреса по DHCP от роутера, то адреса при каждом включении могут отличаться. Этого бы не хотелось, т.к. ПК с ноутбуком между собой разберутся и найдут друг друга по именам, а вот у Андроида это может не получиться, т.к. он работает с IP-адресами. Тут есть два способа:
Подключение по локальной сети — Ethernet адаптер:
DNS-суффикс этого подключения . . :
Описание . . . . . . . . . . . . : Realtek PCIe GBE Family Controller
Физический адрес. . . . . . . . . : 00-1F-D0-D4-53-2D
Dhcp включен. . . . . . . . . . . : нет
IP-адрес . . . . . . . . . . . . : 192.168.5.2
Маска подсети . . . . . . . . . . : 255.255.255.0
Основной шлюз . . . . . . . . . . : 192.168.5.1
DNS-серверы . . . . . . . . . . . : 192.168.5.1
Ребрендинг шапки любезно предоставлен Fidelich — тыц.
Сообщение отредактировал Gridzilla — 22.02.16, 11:53
skunsofob,
Имя и пароль пользователя Windows.
Т.е. можно либо вписать имя и пароль того пользователя под которым заходишь в Windows, либо создать отдельного, назвать его, например, Android.
Возможно проблема также в том, что у пользователя Windows отсутствует пароль.
Насчет Win 7 не знаю, но Win XP Pro запрещает доступ к расшаренным папкам пользователям без пароля.
Еще вариант — попробовать поставить в настройках сервера галку «Анонимный вход».
Галку Анонииный вход ставил — не помогает. А паролей у меня действительно нет как на ПК с ХР, так и на ноуте с Win7. Неужеле придется отдельного пользователя создавать под паролем? По проводам сеть делал — паролей не требовалось.
Сообщение отредактировал Бодтэк — 11.10.11, 11:11
Т.е. доступ с ПК на ноут с Win 7 есть и без пароля?
Имя пользователя Win 7 и пустой пароль в настройках ES проводника не срабатывает?
Проверь настройки Win7 в Панель управления -> Сети и Интернет -> Центр управления сетями и общим доступом ->Изменить дополнительные параметры общего доступа (Control Panel -> All Control Panel Items -> Network and Sharing Center-> Change advanced sharing settings), там в самом низу еще раз дополнительные параметры и указать «Отключить защиту паролем». После этого анонимный вход с Андроида должен заработать.
Как вариант — попробуй временно отключить брандмауэр в Win 7. Возможно он мешает.
Сообщение отредактировал raven6 — 09.08.11, 20:42
Логин и пароль пользователя Windows, имеющего доступ к расшаренным папкам.
Так расшарьте какую-нибудь. Без расшаренных папок на ПК вся эта затея теряет смысл.
Правда в Win XP существуют административные ресурсы — все разделы жесткого диска расшарены автоматически с именами типа C$, D$ и т.п. Для доступа к таким ресурсам нужно указать имя и пароль пользователя этого ПК с правами администратора.
Сообщение отредактировал raven6 — 17.08.11, 09:39
Так я никакой логин и пароль не использую для учетной записи (Windows 7)
Да пробовал (создавал папку и расшаривал к ней доступ), не работает все равно, брандмауэр отключал
и нажмите Enter.
После этого будет выдан список всех имеющихся учетных записей пользователей
Временно (ну или постоянно, хотя это небезопасно) отключите парольную защиту расшаренных папок.
Сообщение отредактировал raven6 — 17.08.11, 10:32
Учетная запись есть, но пароль в ней никакой не используется (если не используется что вводить?), почему запрашивается не пойму
Парольную защиту отключил, при конекте к компьютеру, отображаются папки открытые для общего доступа, но при попытке зайти в любую из расшаренных мною папок выскакивает сообщение о неправильном логине и пароле
Анонимный вход в настройках сервера в ES проводнике попробуйте включить.
Сообщение отредактировал raven6 — 17.08.11, 11:14
Включен анонимный вход, все равно не пускает. Пишет: неправильний пароль, возможные причины: недостаточно прав пользователя
Может есть альтернативное решение со значительно простой настройкой?)
Сообщение отредактировал DeaDia — 17.08.11, 11:06
Попробуйте другие файл-менеджеры с поддержкой сети.
Если не заработает, то включите защиту паролем для расшаренных папок и создайте пользователя (например Android) с паролем.
Сообщение отредактировал raven6 — 17.08.11, 11:17
Разобрался.
Итак, диспозиция: Win 7, статический IP, единственный пользователь, созданный при установке, у которого отсутствует пароль.
Если в Win 7 включен общий доступ с парольной защитой (по умолчанию), то ES проводник даже не сможет просмотреть список расшаренных папок, его сразу пошлют, потому что у него документов нету.
Если общий доступ с парольной защитой отключен, то список расшаренных папок в ES проводнике отображается, но доступ можно получить только к папке Users, т.к. к ней по умолчанию разрешен доступ для всех.
Вариантов — два: либо отключить парольную защиту и предоставлять права на доступ к каждой расшаренной папке пользователю гость/Guest (свойства папки>Доступ, там в списке выбрать Guest и нажать добавить), либо не отключать парольную защиту, а создать пользователя, имеющего пароль, и опять же предоставить ему права на доступ к расшаренной папке в том же диалоге. После этого имя и пароль этого пользователя требуется вводить в настройках сервера в ES Проводнике.
По умолчанию Win 7 дает доступ к расшариваемой папке только единственному нашему пользователю, у которого нет пароля, соответственно авторизоваться по сети он не может.
Если Вам не хочется выбирать пользователя при каждой загрузке, то настройте автоматический вход.
Сообщение отредактировал raven6 — 18.08.11, 22:40
Получилось получить доступ к некоторым папкам на компе с телефона. Только под пользователем «Гость» (другие имена никак не хотят восприниматься). Причем сделать общий доступ ко всему диску C:\ не получается. Только если делать для каждой папки по отдельности. Может можно как-то разрешить доступ ко всему содержимому компа более простым способом?
Также по ссылке выше сделал автоматический вход в систему, но при пробуждении опять надо пользователя выбирать тыканьем на значок. А при обычной загрузки — автоматический вход работает. Как можно Windows 7 «объяснить» что я ОДИН ЕДИНСТВЕННЫЙ пользователь компа, что других нет и не предвидеться? Чтобы не было других пользователей, кроме «Владелец (Администратор)». Удалить все другие учетные записи чтоб не мешались и все лишнее раз и навсегда.
Сообщение отредактировал skunsofob — 19.08.11, 18:52
Источник
7 лучших приложений, чтобы передать файлы с Андроид на ПК
У каждого современного человека есть смартфон. Мы используем умные телефоны во всех сферах нашей жизни: общаемся в мессенджерах, ведем и смотрим блоги в социальных сетях, звоним, работаем, делаем фотографии и видео. На смартфонах и планшетах хранится огромное количество важной для нас информации, и потерять ее никому бы не хотелось. Поэтому рекомендуется время от времени переносить файлы на стационарное устройство, чтобы им ничего не угрожало. И, к тому же, иногда они могут потребоваться вам просто потому, что на компьютере удобно работать.
Сегодня мы поговорим о том, как можно быстро и безопасно переместить данные с мобильного устройства с ОС Android на компьютер. Мы подготовили для вас подборку специальных программ, которые могут с этим помочь.
Этот рейтинг составлен на основе ваших лайков и дизлайков. Хочешь участвовать в формировании ТОПа? Читай статью и голосуй с помощью кнопок «Мне нравится» или «Не нравится» для каждого рассмотренного приложения!
Передача данных WiFi
Это приложение позволяет с помощью беспроводного подключения к Интернету передавать данные со смартфона/планшета на компьютер и обратно. Перемещать можно и достаточно тяжелые файлы – изображения высокого качества и видео.
После того, как вы настроите синхронизацию между устройствами, вы получите возможность не только свободно перемещать файлы, но и удаленно управлять ими удаленно через IP-подключение.
После того, как вышла версия OS Android 9, защита данных в системе несколько изменилась. Для того, чтобы передавать файлы в более новых версиях Андроида, необходим специальный уровень доступа. Разработчики также доработали это приложение для того, чтобы организовать пользователям доступ.
Отзывы
InShare — Передача файлов, Перенос данных
Эта программа отлично исполняет свою главную функцию – переносить данные с мобильной ОС Андроид на компьютер. Она воспринимает любые форматы: музыку, видео, документы, приложения .apk, файлы pdf и электронные книги. Количество данных, которые можно отправить, не ограничено.
Разработчики регулярно обновляют программу и добавляют в нее улучшения. В ближайшее время они обещают сделать возможность групповой и межплатформенной передачи файлов, а также встроить проигрыватель для видеофайлов.
Отзывы
ShareMe
С помощью этой программы вы сможете передавать данные с любого устройства, на котором установлена мобильная операционная система Андроид. ShareMe совместима с популярными телефонами Samsung и Xiaomi, но и с менее известными марками. Разработчики заботятся о том, чтобы сохранить конфиденциальность и безопасность всей информации, проходящей по каналам подключения.
ShareMe организовывает обмен файлами с помощью P2P-подключения. Это безопасный и оперативный способ, который оценили уже почти 400 миллионов пользователей приложения.
Отзывы
EasyShare – Ultrafast File Transfer, Free & No Ads
Это приложение получило большую популярность и признание поклонников. Дело в том, что оно работает очень оперативно, а сбои встречаются крайне редко, и такая надежность не может не радовать.
Еще одно важное достоинство этого приложения – это его простота. Разобраться с интерфейсом и основными функциями можно буквально за несколько минут. Даже название его звучит как EasyShare, что переводится с английского языка «просто делиться».
Соединение работает стабильно, а данные при передачи надежно защищены – поэтому эта программа станет отличный вариантом и для обычных пользователей Андроида, и для продвинутых.
Отзывы
Bluetooth File Transfer
Вы помните, как 15 лет назад мы передавали песни через Bluetooth еще на кнопочных телефонах? Их еще нужно было держать поближе друг к другу для того, чтобы соединение было более прочным. Так вот, в современных смартфонах Bluetooth тоже используется для передачи данных: только теперь их объемы гораздо больше, а обмен файлами происходит более оперативно. Для того, чтобы переправить данные с мобильного Андроид-устройства на компьютер, мы рекомендуем программу Bluetooth File Transfer. Она устанавливается на телефон или планшет.
Обратите внимание, что для синхронизации с помощью этого приложения требуется подключение Bluetooth – и на мобильном устройстве, и на компьютере. Проверьте, чтобы ваши системные настройки были корректными.
Отзывы
WiFi File Transfer
Большинство обычных пользователей Интернета знают, что Wi-Fi – это возможность подключиться к Интернету без преодоления затейливой паутины проводов. Однако на самом деле возможности такого подключения гораздо шире. В том числе, его можно использовать и для передачи данных между устройствами.
Приложение WiFi File Transfer создано для того, чтобы вы могли просто и без USB кабеля отправлять файлы со смартфона или планшета на компьютер и обратно.
Обратите внимание, что использовать эту программу с WiFI соединением в общественных местах может быть небезопасно – возможна утечка данных. Чтобы этого избежать, мы рекомендуем вам поставить подключение по паролю, который будете знать только вы.
Отзывы
Catch! — Передача файлов для Android и ПК
Эта программа позволяет передавать данные между различными ПК (в том числе и от Apple) и смартфонами/планшетами на базе Андроид. Для передачи используется эмулятор DAEMON Tools – его обязательно нужно будет установить на компьютере, на мобильном устройстве же используется Catch!.
Обратите внимание, что для корректной работы программы оба устройства должны быть подсоединены к одной локальной сети. Вы отправляете файлы из Catch! и ловите из в DAEMON Tools.
Отзывы
В целом, функционал всех этих приложений очень похож. Есть различия в способах передачи информации, интерфейсах и производительности, но так или иначе – все программы из нашей подборки созданы для передачи данных с мобильного устройства на стационарное и обратно. Мы рекомендуем пользователям попробовать несколько разных приложений для того, чтобы из них выбрать самое подходящее лично для себя.
Источник