Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
Вячеслав_1988
0 / 0 / 0
Регистрация: 16.10.2015
Сообщений: 21
1

Обмен данными между приложениями на Android и ПК Windows

16.10.2015, 14:17. Просмотров 2105. Ответов 14
Метки нет (Все метки)

Здравствуйте всем!!!)
Если коротко, то на данный момент задача такая:
1. Приложение Android - Кнопка, TextView.
2. Приложение ПК Windows - Кнопка и Текстовое поле.
3. Сеть WiFi, Bluetooth.
4. При нажатии кнопки на ПК дублируется нажатие кнопки на устройстве Android и наоборот.
5. В текстовом поле появляется сообщение "Кнопка нажата на Windows/Android".

Пожалуйста, поделитесь ссылками, где почитать реализацию чего-то подобного, буду очень благодарен.
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.10.2015, 14:17
Ответы с готовыми решениями:

Обмен данными между приложениями
Добрый день! Есть 2 моих отдельных друг от друга приложения, нужно из одного отправить строку в...

Android Передача обмен данными между устройствами
Здравствуйте! Каким образом реализовать передачу данных между двумя устройствами, если речь идет...

Обмен сообщениями между двумя приложениями по сети
Всем добрый день! Возникла необходимость в реализации самого простейшего мессенджера под платформу...

Обмен данными android & arduino
Всем добрый день, решил создать программу управление arduino uno через android, нашел хорошую...

Обмен данными по wi-fi между девайсами
Доброго времени суток! Знает кто-нибудь, как можно наладить связь по wi-fi между android...

14
Valakin
435 / 101 / 15
Регистрация: 21.02.2015
Сообщений: 845
16.10.2015, 14:30 2
вариантов как сделать много, а кто дал задание?
1
Вячеслав_1988
0 / 0 / 0
Регистрация: 16.10.2015
Сообщений: 21
16.10.2015, 14:45  [ТС] 3
Себровская Галина Петровна - дипломный руководитель, это, естественно, не дипломный проект)
вариантов много - это хорошо, а ссылки есть?
гугл выдает множество приложений, но я-то хочу сделать свое)
0
Valakin
435 / 101 / 15
Регистрация: 21.02.2015
Сообщений: 845
16.10.2015, 14:50 4
http://startandroid.ru/ru/uroki/vse-...re-button.html
по первому пункту
на чем будешь писать второй пункт вопрос к автору
1
16.10.2015, 14:50
YuraAAA
1582 / 1322 / 283
Регистрация: 25.10.2009
Сообщений: 3,436
Записей в блоге: 2
16.10.2015, 14:55 5
Вячеслав_1988, я бы поднял сервер на ASP.NET и установил сокет-соединение с клиентом. Отправлять можно пакеты, в которых бы указывался код
1
Вячеслав_1988
0 / 0 / 0
Регистрация: 16.10.2015
Сообщений: 21
16.10.2015, 15:04  [ТС] 6
спасибо! но не все так плохо, кнопку с текстовым полем я сделаю)
для ПК можно написать на Visual Basic, С#, Delphi...
меня интересует именно обмен данными между андроид и ПК Windows

Добавлено через 6 минут
Желательно, конечно, мне часть для ПК сделать на Visual Basic, т.к. наши преподы только в нем шарят)
0
Valakin
435 / 101 / 15
Регистрация: 21.02.2015
Сообщений: 845
16.10.2015, 15:04 7
ну сервер то в этой цепочке предусмотрен?
должен же ты где то хранить данные - нажата ли кнопка
Visual Basic сможет отправить дату на сервер,
а прочитать можно вообще ничего не программируя
в exel ссыклу на html и обновление каждые пол секунды
1
Вячеслав_1988
0 / 0 / 0
Регистрация: 16.10.2015
Сообщений: 21
16.10.2015, 15:07  [ТС] 8
да-да, естественно сервер должен быть.
Дельное замечание!
0
Valakin
435 / 101 / 15
Регистрация: 21.02.2015
Сообщений: 845
16.10.2015, 17:06 9
Галина Петровна не уточнила какое время отклика между компом и смартфоном должно быть на нажатие кнопки?
0
Вячеслав_1988
0 / 0 / 0
Регистрация: 16.10.2015
Сообщений: 21
17.10.2015, 16:21  [ТС] 10
Уточнять не уточняла, на я думаю, что дельное приложение должно работать оперативно)
0
_Night_Scream_
89 / 84 / 12
Регистрация: 08.08.2013
Сообщений: 667
17.10.2015, 22:17 11
обычные сокеты, без разницы кто будет сервером, а кто клиентом, время отклика у меня около 50 мс получалось с ПК на андроид передать пакет и вывести его в лог.
1
Вячеслав_1988
0 / 0 / 0
Регистрация: 16.10.2015
Сообщений: 21
18.10.2015, 20:40  [ТС] 12
_Night_Scream_, а может есть литературка, почитать, как сделать правильно? куски кода какие или скрины?
Скиньте, пожалуйста)
0
_Night_Scream_
89 / 84 / 12
Регистрация: 08.08.2013
Сообщений: 667
18.10.2015, 20:53 13
Вячеслав_1988, да этого добра полно в инете.
http://android-er.blogspot.ru/2014/0...le-client.html
http://habrahabr.ru/sandbox/31311/
http://www.javaportal.ru/java/articles/ClientServer.html
0
Вячеслав_1988
0 / 0 / 0
Регистрация: 16.10.2015
Сообщений: 21
23.11.2015, 00:57  [ТС] 14
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
Private Sub cmdSendData_Click()
'Îòïðàâëÿåì äàííûå
Winsock1.SendData txtSendData.Text
'Çàïèñûâàåì â ëîã ÷àòà
txtOutput.Text = txtOutput.Text & vbNewLine & "Ñåðâåð: " & txtSendData.Text
'Ñòèðàåì òåêñò
txtSendData.Text = ""
'ïåðåäàåì ôîêóñ ââîäà òåêñòîâîìó ïîëþ
txtSendData.SetFocus
End Sub
 
Private Sub Form_Load()
'Áëîêèðóåì ëîã ÷àòà îò ââîäà
txtOutput.Locked = True
'Óñòàíàâëèâàåì ðàçìåðû ýëåìåíòîâ
txtOutput.Move 0, 0, Me.Width, Me.Height * 0.6
txtSendData.Move 0, txtOutput.Height + 10, Me.Width
cmdSendData.Move 0, txtSendData.Top + txtSendData.Height, Me.Width
'Óñòàíàâëèâàåì äðóãèå ñâîéñòâà
txtOutput.Text = ""
txtSendData.Text = "Ââåäèòå ñþäà òåêñò, ÷òîáû îòïðàâèòü"
cmdSendData.Caption = "Îòïðàâèòü"
'Óñòàíàâëèâàåì ïîðò äëÿ ïðîñëóøèâàíèÿ
Winsock1.LocalPort = 6574
'Íà÷èíàåì ïðîñëóøèâàòü
Winsock1.Listen
End Sub
 
Private Sub txtSendData_KeyPress(KeyAscii As Integer)
'Åñëè íàæàò Enter - îòïðàâëÿåì äàííûå
If KeyAscii = 13 Then cmdSendData_Click
End Sub
 
Private Sub Winsock1_Close()
'Çàêðûâàåì ñîåäèíåíèå, åñëè îíî åùå íå çàêðûòî
If Winsock1.State <> sckClosed Then Winsock1.Close
'Íà÷èíàåì ïðîñëóøèâàòü åùå ðàç
Winsock1.Listen
End Sub
 
Private Sub Winsock1_ConnectionRequest(ByVal requestID As Long)
'Îñòàíàâëèâàåì ïðîñëóøèâàíèå
'(Îáÿçàòåëüíî!)
Winsock1.Close
 
'Ïîäêëþ÷àåì êëèåíòà
Winsock1.Accept requestID
 
'Î÷èùàåì ëîã ðàçãîâîðà
txtOutput.Text = "ÅÑÒÜ ÏÎÄÊËÞÞ×ÅÍÈÅ!!!"
End Sub
 
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim s$
'Ïðèíèìàåì âñå äàííûå
Winsock1.GetData s, vbString
 
'Çàïèñûâàåì äàííûå â ëîã ðàçãîâîðà
txtOutput.Text = txtOutput.Text & vbNewLine & "Êëèåíò: " & s
 
'Ïåðåìåùàåì êóðñîð â êîíåö ëîãà
txtOutput.SelStart = txtOutput.SelLength
 
End Sub
 
Private Sub Winsock1_Error(ByVal Number As Integer, Description As String, ByVal Scode As Long, ByVal Source As String, ByVal HelpFile As String, ByVal HelpContext As Long, CancelDisplay As Boolean)
 
MsgBox Description, vbCritical
Winsock1_Close
End Sub
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
package com.example.client_1;
 
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.Socket;
import java.net.UnknownHostException;
 
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
 
public class MainActivity extends Activity {
    
    TextView tvCon;
    Socket client = null;
    int cPort = 6574;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        tvCon = (TextView)findViewById(R.id.tvCon);
        tvCon.setText("Cotrol Connect to Port:" + cPort);
        DataOutputStream dataOutputStream = null;
        
        try 
        {
            client = new Socket ("10.0.2.2", cPort);
            dataOutputStream = new DataOutputStream (client.getOutputStream());
            dataOutputStream.writeUTF("Отправленное сообщение от Android");
            
        }
        catch (UnknownHostException e)
        {
            tvCon.append('\n' + "Error" + e.getMessage());
            e.printStackTrace();
        }
        catch (IOException e)
        {
            tvCon.append('\n' + "Error" + e.getMessage());
            e.printStackTrace();
        }
                
    }
 
    }
Вот такая штука получилась:
Соединение устанавливается (на эмуляторе), но при отправке сообщения с Android, как я понимаю, какие-то данные приходят, т.к. во входяших сообщениях на форме VB, отображается надпись "Клиент:", после которой должно быть написано то самое сообщение, но его нет... Что не так?

Добавлено через 9 минут
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Private Sub Winsock1_ConnectionRequest(ByVal requestID As Long)
'остановка прослушивания 
Winsock1.Close
 
'подключение клиента
Winsock1.Accept requestID
 
'запись в лог разговора
txtOutput.Text = "ЕСТЬ ПОДКЛЮЧЕНИЕ!!!"
End Sub
 
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim s$
'прием данных
Winsock1.GetData s, vbString
 
[COLOR="Red"][B]'запись в лог разговора
txtOutput.Text = txtOutput.Text & vbNewLine & "Клиент: " & s[/B][/COLOR]
 
'фокус в конец лога
txtOutput.SelStart = txtOutput.SelLength
 
End Sub
вот кусок, который интересует, не знаю, что с комментами в полном коде VB)
я думаю, что что-то с UTF не так

Добавлено через 13 минут
Да, я пробовал заменить в Java-коде writeUTF на writeBytes и writeChars, в первом случае нормально передает только латинские буквы, вот какое сообщение приходит (B?@02;5==>5 A>>1I5=85 >B Android); во втором случае, естественно, символы.
0
bastrakov
91 / 91 / 14
Регистрация: 10.10.2015
Сообщений: 307
Записей в блоге: 1
23.11.2015, 07:48 15
проблема в юникоде (UTF). если вызов доходит, то 80% работы готово.
осталось сделать последние 20%, которые отнимают 80% времени.
разберитесь с кодировками.
...в VB не писал лет 10, так что - увы. может оно там и не того...
0
23.11.2015, 07:48
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.11.2015, 07:48

Обмен данными между активити
проблема такая есть активити которому должен вернуться результат после работы другого активити....

Обмен данными между Activity
Между Activity делал обмен через Intent, но передает пустой строку. второй активити package...

Авторизация и обмен данными между пользователями
Всем привет. Есть задумка приложения, пользователи будут обмениваться между собой информацией...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.