Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Вячеслав_1988
0 / 0 / 0
Регистрация: 16.10.2015
Сообщений: 21
#1

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

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

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

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

Добавлено через 6 минут
Желательно, конечно, мне часть для ПК сделать на Visual Basic, т.к. наши преподы только в нем шарят)
Valakin
430 / 96 / 15
Регистрация: 21.02.2015
Сообщений: 729
16.10.2015, 15:04     Обмен данными между приложениями на Android и ПК Windows #7
ну сервер то в этой цепочке предусмотрен?
должен же ты где то хранить данные - нажата ли кнопка
Visual Basic сможет отправить дату на сервер,
а прочитать можно вообще ничего не программируя
в exel ссыклу на html и обновление каждые пол секунды
Вячеслав_1988
0 / 0 / 0
Регистрация: 16.10.2015
Сообщений: 21
16.10.2015, 15:07  [ТС]     Обмен данными между приложениями на Android и ПК Windows #8
да-да, естественно сервер должен быть.
Дельное замечание!
Valakin
430 / 96 / 15
Регистрация: 21.02.2015
Сообщений: 729
16.10.2015, 17:06     Обмен данными между приложениями на Android и ПК Windows #9
Галина Петровна не уточнила какое время отклика между компом и смартфоном должно быть на нажатие кнопки?
Вячеслав_1988
0 / 0 / 0
Регистрация: 16.10.2015
Сообщений: 21
17.10.2015, 16:21  [ТС]     Обмен данными между приложениями на Android и ПК Windows #10
Уточнять не уточняла, на я думаю, что дельное приложение должно работать оперативно)
_Night_Scream_
75 / 74 / 8
Регистрация: 08.08.2013
Сообщений: 581
17.10.2015, 22:17     Обмен данными между приложениями на Android и ПК Windows #11
обычные сокеты, без разницы кто будет сервером, а кто клиентом, время отклика у меня около 50 мс получалось с ПК на андроид передать пакет и вывести его в лог.
Вячеслав_1988
0 / 0 / 0
Регистрация: 16.10.2015
Сообщений: 21
18.10.2015, 20:40  [ТС]     Обмен данными между приложениями на Android и ПК Windows #12
_Night_Scream_, а может есть литературка, почитать, как сделать правильно? куски кода какие или скрины?
Скиньте, пожалуйста)
_Night_Scream_
75 / 74 / 8
Регистрация: 08.08.2013
Сообщений: 581
18.10.2015, 20:53     Обмен данными между приложениями на Android и ПК Windows #13
Вячеслав_1988, да этого добра полно в инете.
http://android-er.blogspot.ru/2014/0...le-client.html
http://habrahabr.ru/sandbox/31311/
http://www.javaportal.ru/java/articl...entServer.html
Вячеслав_1988
0 / 0 / 0
Регистрация: 16.10.2015
Сообщений: 21
23.11.2015, 00:57  [ТС]     Обмен данными между приложениями на Android и ПК Windows #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); во втором случае, естественно, символы.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.11.2015, 07:48     Обмен данными между приложениями на Android и ПК Windows
Еще ссылки по теме:
Авторизация и обмен данными между пользователями Android
Android Обмен данными между телефонами через интернет
Android Обмен данными между Activity (одна глобальная переменная)
Android Как реализовать обмен данными между копиями одного приложения, установленными на разных устройствах
Android Подскажите, как в Android-играх можно обмениваться данными онлайн между 2 игроками через интернет?

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

Или воспользуйтесь поиском по форуму:
bastrakov
91 / 91 / 14
Регистрация: 10.10.2015
Сообщений: 307
Записей в блоге: 1
23.11.2015, 07:48     Обмен данными между приложениями на Android и ПК Windows #15
проблема в юникоде (UTF). если вызов доходит, то 80% работы готово.
осталось сделать последние 20%, которые отнимают 80% времени.
разберитесь с кодировками.
...в VB не писал лет 10, так что - увы. может оно там и не того...
Yandex
Объявления
23.11.2015, 07:48     Обмен данными между приложениями на Android и ПК Windows
Ответ Создать тему
Опции темы

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