C2DM не дает никаких гарантий относительно «доставки или порядка» сообщений, и оно ограничено по количеству сообщений, которые вы можете отправлять (высокий предел, но все же предел).Это не совсем для вещей с низкой задержкой, таких как управление автомобилем RC.Это лучше для событий не в реальном времени.
http://code.google.com/android/c2dm/
Для вещей с более низкой задержкой, используя GPRS, вы можете настроить сторонний сервер самостоятельно и подключить к нему оба телефона.Я сделал это для нескольких приложений Android, использующих прямые сокеты TCP, и это работает достаточно хорошо (и было бы еще быстрее / лучше, если бы вы перешли на UDP).Использование GPRS может все еще иметь слишком большую задержку, в зависимости от ваших потребностей, но это компромисс (это очень удобно, почти всегда, другие методы - нет).
Идеальным способом сделать это было бы объединить все, что доступно, и корректно откатиться, и проверить задержку после подключения, чтобы убедиться, что сеть работает на нормальном уровне или выручает.Например, используйте локальную сеть WiFi, если она доступна.То есть оба устройства «регистрируются» на стороннем сервере при запуске, а затем, если они оба подключены к одному и тому же Wi-Fi, просто подключите их напрямую (запустите сервер на одном или обоих, а клиенты на одном или обоих,получить информацию об обнаружении и т.п. от регистрации).Если они не подключены к WiFi, используйте GPRS, но поймите, что задержка будет больше.Наконец, после того, как какой-либо метод был установлен, отправьте несколько тестовых сообщений для проверки задержки.
Я знаю, что на самом деле это не «ответ», это скорее поток сознания об этом, но он не подходитв комментарии, и я подумал, что это может помочь;).
(Полное раскрытие: я работал над приложениями для Android, которые соединяют несколько мобильных устройств и несколько телевизоров, некоторые через GPRS, некоторые через Wi-Fi, некоторые напрямую. Я работаю в компании (MOVL), которая делает платформу для вещейТаким образом, он больше ориентирован на мобильное ТВ-мобильное, но также поддерживает мобильное-мобильное. Вообще, не так уж сложно работать с обычными сетями, сложная часть заключается в снижении задержки и выборе правильного метода для каждого устройства..)