0 / 0 / 0
Регистрация: 16.10.2015
Сообщений: 21
1

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

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

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

Пожалуйста, поделитесь ссылками, где почитать реализацию чего-то подобного, буду очень благодарен.
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.10.2015, 14:17
Ответы с готовыми решениями:

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

Обмен данными между приложениями по Wi-Fi
Доброго времени суток. Подскажите пожалуйста как сделать программу которая будет работать на 2-х...

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

Обмен данных между DOS-приложениями и Windows-приложениями
Как настроить установки Windows 98, чтобы нажатием клавиши PrtSc рисунок, созданный Borland...

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

Добавлено через 6 минут
Желательно, конечно, мне часть для ПК сделать на Visual Basic, т.к. наши преподы только в нем шарят)
0
435 / 101 / 15
Регистрация: 21.02.2015
Сообщений: 845
16.10.2015, 15:04 7
ну сервер то в этой цепочке предусмотрен?
должен же ты где то хранить данные - нажата ли кнопка
Visual Basic сможет отправить дату на сервер,
а прочитать можно вообще ничего не программируя
в exel ссыклу на html и обновление каждые пол секунды
1
0 / 0 / 0
Регистрация: 16.10.2015
Сообщений: 21
16.10.2015, 15:07  [ТС] 8
да-да, естественно сервер должен быть.
Дельное замечание!
0
435 / 101 / 15
Регистрация: 21.02.2015
Сообщений: 845
16.10.2015, 17:06 9
Галина Петровна не уточнила какое время отклика между компом и смартфоном должно быть на нажатие кнопки?
0
0 / 0 / 0
Регистрация: 16.10.2015
Сообщений: 21
17.10.2015, 16:21  [ТС] 10
Уточнять не уточняла, на я думаю, что дельное приложение должно работать оперативно)
0
90 / 85 / 12
Регистрация: 08.08.2013
Сообщений: 667
17.10.2015, 22:17 11
обычные сокеты, без разницы кто будет сервером, а кто клиентом, время отклика у меня около 50 мс получалось с ПК на андроид передать пакет и вывести его в лог.
1
0 / 0 / 0
Регистрация: 16.10.2015
Сообщений: 21
18.10.2015, 20:40  [ТС] 12
_Night_Scream_, а может есть литературка, почитать, как сделать правильно? куски кода какие или скрины?
Скиньте, пожалуйста)
0
90 / 85 / 12
Регистрация: 08.08.2013
Сообщений: 667
18.10.2015, 20:53 13
Вячеслав_1988, да этого добра полно в инете.
http://android-er.blogspot.ru/... lient.html
http://habrahabr.ru/sandbox/31311/
http://www.javaportal.ru/java/... erver.html
0
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
91 / 91 / 14
Регистрация: 10.10.2015
Сообщений: 307
Записей в блоге: 1
23.11.2015, 07:48 15
проблема в юникоде (UTF). если вызов доходит, то 80% работы готово.
осталось сделать последние 20%, которые отнимают 80% времени.
разберитесь с кодировками.
...в VB не писал лет 10, так что - увы. может оно там и не того...
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.11.2015, 07:48

Технология обмен данными между приложениями
Приветствую профессионалов и любителей программирования! Принимайте новичка. Собственно такой...

Обмен данными между С++ и Java EE приложениями
Добрый день! Может кто-нибудь сможет подсказать решение следующей поблемы. У меня есть...

Универсальный обмен данными между приложениями
Посоветуйте, пожалуйста, подход для решения следующей штуки: Передача данных из приложенияА (C#) в...

Обмен данными между двумя приложениями
Здравствуйте! Задача такая: существует два приложения: одно содержит кнопки вверх, вниз, влево,...


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

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

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