Даже с Bluetooth вы можете создавать приложения клиент-сервер .. есть BluetoothSocket
читать здесь http://developer.android.com/reference/android/bluetooth/BluetoothSocket.html
Теперь, позволяет сказать, что у вас есть два устройства:
- Устройство A
- устройства B
и предположим, что устройство A отправляет данные на устройство B, вы не сказали, что устройство B также отправляет данные на устройство A, поэтому я просто опишу первый сценарий, когда A отправит B.
Так что в этом случае, поскольку все данные хранятся в устройстве A и вы хотите отправить его на устройство B, оно будет более разумно создать устройство A в качестве Bluetooth-сервера и устройство B в качестве BluetoothClient, который слушает сервер.
Но .. Если вы хотите, оба устройства будут обмениваться данными .. Вы можете сделать одну из них в качестве сервера и для каждого из них создать 2 темы:
- тему, которая отправляет данные
- нити, что прослушивание данных
так как они могут обмениваться данными ..
Другой вещью .. если вы когда-нибудь программировали постоянный клиент сервер вы заметили метод accept()
, который блокируется до тех пор, пока не будет клиент, подключенный к серверу. То же самое с приложением клиент-сервер Bluetooth.
Обобщить:
Одно устройство будет выступать в качестве сервера - так что вам необходимо написать проект сервера и установить
это на первом устройстве
Второе устройство выступать в роли клиента - так что вам нужно будет написать проект клиента, а установить его на втором устройстве
Не забудьте добавить разрешение Bluetooth в файл манифеста для проектов
.
Оба проекта нуждаются в том же UUID, что и в вашем вопросе. Простыми словами обеим сторонам нужен UUID, чтобы каждый из них знал, кто они Общайтесь Я думаю, что это больше похоже на порт на обычном клиент-сервере. Я читал где-то, что используется для связи RFC .. как вы, наверное, знаете, что есть
некоторые протоколы Bluetooth, как RFC, СДП и т.д ..
EDIT: в большинстве телефонов есть процесс спаривания, когда вы хотите отправить данные через Bluethooth. так что если вы не хотите использовать версию клиент-сервер, я думаю, что вы можете сделать это :
- Ваше приложение будет искать устройства для подключения. (Процесс спаривания)
- После спаривания вы подключены к другому устройству и просто передавать данные
EDIT 2: Вы хотите отправить данные из А в правой? Я объясню более четко ..
Вы правы, когда сказали, что клиент должен знать, кто является сервером, и нужно вставить порт и IP-адрес сервера, это правильно и работает таким образом.
Теперь посмотрим ..
Сервер слушать подключения от клиентов, когда соединение установлено связь начинается .
- Клиент запрашивать данные
Сервер обработки запроса клиента и отправить ему соответствующие данные
Поэтому любые данные, такие как: файлы, базы данных должны быть сохранены на стороне сервера ..
Теперь в вашем случае файлы, которые вы хотите отправить, находятся на устройстве A, а не на устройстве B, Итак, если устройство A является сервером, он будет прослушивать подключения .. когда устройство B подключается к серверу (устройство A) начинается связь. Устройство B может запрашивать файлы с устройства A .. Кроме того, поскольку устройство A является сервером, он может даже транслировать сообщение .. означает отправить то же сообщение для всех клиентов, которые к нему подключены.
Но что вы хотите сделать, это отправить файл, даже если устройство b не запросило его, не так ли? Я не понимаю, если вы хотите, чтобы устройство B также отправить файл в устройство A, так что позволяет разделить его
в сценарии:
только устройство А присылают В: В этом случае, так как файлы расположенный в устройстве A, означает устройство A, данные, Устройство A является сервером, а устройство B является клиентом. Поэтому, когда соединение установлено, вы можете отправить от А до В.
Оба устройства обмена данными: В этом случае оба устройства должны слушать друг друга, но только один из должен действовать в качестве сервера, а другой как клиент. означает, что вам нужно установить serverApp на один из них, а clientApp - на другой. Но каждый из них может отправлять и слушать другие. так что для каждого из вас нужно создать нити, которая справиться с передающими данными и другой поток, который обрабатывает прием данные
нормально .... так что если оба они не знают о том, что UUID, они не могут общаться? – user2056245
Итак, мой вопрос, если мы впервые встретимся завтра, и у меня есть приложение, запущенное на моем устройстве и (очевидно, вы не будете иметь его на своем), и я хочу отправить этот файл «.xyz» вам с помощью bluetooth, I не сможет отправить? – user2056245
Я могу только отправить, если у ВАС есть мое приложение на ВАШЕМ телефоне? – user2056245