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

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

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

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

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

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

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

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

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

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

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

Обмен данными между Activity - Программирование Android
Между Activity делал обмен через Intent, но передает пустой строку. второй активити package com.androidexample.httpgetexample; ...

Обмен данными между активити - Программирование Android
проблема такая есть активити которому должен вернуться результат после работы другого активити. Все бы хорошо но вот в чем проблема ,...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Valakin
431 / 97 / 15
Регистрация: 21.02.2015
Сообщений: 731
16.10.2015, 14:30 #2
вариантов как сделать много, а кто дал задание?
1
Вячеслав_1988
0 / 0 / 0
Регистрация: 16.10.2015
Сообщений: 21
16.10.2015, 14:45  [ТС] #3
Себровская Галина Петровна - дипломный руководитель, это, естественно, не дипломный проект)
вариантов много - это хорошо, а ссылки есть?
гугл выдает множество приложений, но я-то хочу сделать свое)
0
Valakin
431 / 97 / 15
Регистрация: 21.02.2015
Сообщений: 731
16.10.2015, 14:50 #4
http://startandroid.ru/ru/uroki/vse-...re-button.html
по первому пункту
на чем будешь писать второй пункт вопрос к автору
1
YuraAAA
1574 / 1316 / 271
Регистрация: 25.10.2009
Сообщений: 3,438
Записей в блоге: 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
431 / 97 / 15
Регистрация: 21.02.2015
Сообщений: 731
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
431 / 97 / 15
Регистрация: 21.02.2015
Сообщений: 731
16.10.2015, 17:06 #9
Галина Петровна не уточнила какое время отклика между компом и смартфоном должно быть на нажатие кнопки?
0
Вячеслав_1988
0 / 0 / 0
Регистрация: 16.10.2015
Сообщений: 21
17.10.2015, 16:21  [ТС] #10
Уточнять не уточняла, на я думаю, что дельное приложение должно работать оперативно)
0
_Night_Scream_
75 / 74 / 8
Регистрация: 08.08.2013
Сообщений: 586
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_
75 / 74 / 8
Регистрация: 08.08.2013
Сообщений: 586
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/articl...entServer.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
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.11.2015, 07:48
Привет! Вот еще темы с ответами:

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

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

Обмен данными между телефонами через интернет - Программирование Android
Здравствуйте! Идея заключается вот в чем: я не так давно начал изучать java под android и сейчас задался вполне логичным вопросом - как...

Обмен данными между Activity (одна глобальная переменная) - Программирование Android
Добрый день, товарищи. Мой путь в андроиде только начинается, поэтому элементарные для Вас вещи кажутся непонятными для меня. Есть...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
23.11.2015, 07:48
Ответ Создать тему
Опции темы

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