Сделать мобильное устройство пультом для планшета? - PullRequest
7 голосов
/ 10 ноября 2011

Я пытаюсь создать приложение на устройстве Android, которое будет управлять приложением на планшете iPad или Android.(Я тестирую с Samsung Galaxy S2 и iPad 2).

На данный момент приложение довольно простое.При выборе цвета на мобильном телефоне Android этот цвет отображается на планшетном ПК.

Вопрос в том, как соединить два устройства.Только что я проверил, что я могу соединить два устройства, используя Bluetooth.Кроме того, у Samsung есть функция «Kies» Wifi Direct (которую я не совсем понимаю), которая позволяет iPad подключаться к Galaxy в качестве точки доступа Wi-Fi.

Соединения есть, но я неНе знаю, можно ли использовать какой-либо протокол, чтобы приложения могли общаться друг с другом, чтобы получить нужный мне элемент управления.

Должен ли я использовать Bluetooth, Wi-Fi или что-то еще?

И в каком случае, как?

Ответы [ 4 ]

7 голосов
/ 13 ноября 2011

Мое мнение таково, что вы не должны слишком сильно привязываться к физической среде, используемой для подключения, будь то WiFi или Bluetooth.Вы должны абстрагироваться от этого аспекта, в обоих случаях вы будете использовать сокеты (я говорю об Android), если это Bluetooth, вы будете использовать сокеты Bluetooth, если это WiFi: сокеты TCP.У вас может быть промежуточный уровень, который абстрагирует тип соединения и через фабрику использовать Bluetooth или TCP.

Bluetooth - http://developer.android.com/guide/topics/wireless/bluetooth.html

Для WiFi вы должны изучить, поможет ли P2P.

Вам понадобятся два приложения: - одно на планшете - сервер, который прослушивает команды от клиента (измените цвет, сделайте это или это) - второе на смартфоне - клиент, который отправляет команды.

5 голосов
/ 13 ноября 2011

Я создал несколько приложений, которые делают именно это между iPhone и iPad.Но принцип тот же.Я использовал Bonjour сетей.Это просто причудливое название для сетей ZeroConfig между устройствами.Первоначально он написан Apple, но с открытым исходным кодом, поэтому для него тоже должна быть поддержка Android.Действительно просто и легко работать.

4 голосов
/ 13 ноября 2011

Если у вас уже есть работающее соединение, то у вас уже есть первая половина вашего ответа, в которой говорится, что вы действительно должны подумать о реализации решения, использующего различные типы соединений, WIFI, Bluetooth и т. Д. Вопрос, который я думаю, выдействительно спрашивают, как передавать данные и сообщения между приложениями, когда у вас есть соединение.

Есть много способов сделать это.Вы можете реализовать свою собственную облегченную систему передачи сообщений.Если вы не сделали этого раньше, это будет сложнее, чем кажется на первый взгляд, особенно если учесть, что вам потребуется внедрить систему для каждой ОС, которую вы в конечном итоге используете.

1 голос
/ 20 ноября 2011

Должен ли я использовать Bluetooth, Wifi или что-то еще?

Это зависит от того, в каких ситуациях вы хотите, чтобы ваша программа работала.

Bluetooth может обеспечить прямое соединение между вашими устройствами. Потенциальная проблема с Bluetooth заключается в том, что у него ограниченный радиус действия. Если ваши устройства должны быть далеко друг от друга, вы можете пойти с Wi-Fi. В противном случае Bluetooth может работать отлично.

Если оба устройства подключены к Интернету, вы можете заставить их разговаривать друг с другом через них. Преимущество этого подхода заключается в том, что не имеет значения, насколько далеко друг от друга находятся устройства, если они оба находятся в сети. Недостатком является то, что вам придется выяснить, как найти IP-адрес планшета, прежде чем вы сможете поговорить с ним. Это на самом деле ОГРОМНЫЙ недостаток, потому что это может быть довольно проблематично, если оба ваших устройства не на одном и том же Wi-Fi. У вас может быть тип пользователя в IP-адресе назначения, но у вас будут проблемы с его настройкой, если пользователь находится за маршрутизатором (что почти всегда будет так). Дело в том, что оно волосатое.

Если оба ваших устройства подключены к одному и тому же Wi-Fi, вы можете использовать ZeroConf AKA bonjour (как сказал Дэнкрик), чтобы выяснить, по какому ip-адресу вам нужно отправить информацию. Ранее я использовал библиотеку под названием jmdns (легко найти с помощью Google) для реализации сетей с нулевой конфигурацией. Это хорошо, потому что пользователю не нужно беспокоиться о IP-адресах ... это интуитивно понятно для пользователя.

И в каком случае, как?

Сеть - довольно большая тема, поэтому я не могу подробно остановиться на этом вопросе. Короткий ответ: это зависит от того, какой метод вы выберете. Найдите несколько учебных пособий и начните с того, что одно из ваших устройств отправит что-то такое же простое, как int, на другое.

...