回答編集履歴

4

コード修正

2018/09/11 01:58

投稿

f-miyu
f-miyu

スコア1625

test CHANGED
@@ -104,8 +104,6 @@
104
104
 
105
105
  {
106
106
 
107
- System.Diagnostics.Debug.WriteLine(e);
108
-
109
107
  }
110
108
 
111
109
  finally

3

コード修正

2018/09/11 01:58

投稿

f-miyu
f-miyu

スコア1625

test CHANGED
@@ -66,51 +66,65 @@
66
66
 
67
67
  {
68
68
 
69
- var socket = device.CreateRfcommSocketToServiceRecord(getUUIDFromString());
70
-
71
- Task.Run(() =>
69
+ try
72
70
 
73
71
  {
74
72
 
73
+ var socket = device.CreateRfcommSocketToServiceRecord(getUUIDFromString());
74
+
75
- try
75
+ Task.Run(() =>
76
76
 
77
77
  {
78
78
 
79
+ try
80
+
81
+ {
82
+
79
- socket.Connect();
83
+ socket.Connect();
80
84
 
81
85
 
82
86
 
83
- var br = new BufferedReader(new InputStreamReader(socket.InputStream));
87
+ var br = new BufferedReader(new InputStreamReader(socket.InputStream));
84
88
 
85
89
 
86
90
 
87
- string data;
91
+ string data;
88
92
 
89
- while ((data = br.ReadLine()) != null)
93
+ while ((data = br.ReadLine()) != null)
94
+
95
+ {
96
+
97
+ DataReceived?.Invoke(this, new DataEventArgs(data));
98
+
99
+ }
100
+
101
+ }
102
+
103
+ catch (IOException e)
90
104
 
91
105
  {
92
106
 
93
- DataReceived?.Invoke(this, new DataEventArgs(data));
107
+ System.Diagnostics.Debug.WriteLine(e);
94
108
 
95
109
  }
96
110
 
97
- }
111
+ finally
98
112
 
99
- catch (IOException e)
113
+ {
100
114
 
101
- {
115
+ socket.Close();
102
116
 
103
- }
117
+ }
104
118
 
105
- finally
119
+ });
106
120
 
107
- {
121
+ }
108
122
 
109
- socket.Close();
123
+ catch (IOException e)
110
124
 
111
- }
125
+ {
112
126
 
113
- });
127
+ }
114
128
 
115
129
  }
116
130
 

2

コード変更

2018/09/11 01:57

投稿

f-miyu
f-miyu

スコア1625

test CHANGED
@@ -54,29 +54,67 @@
54
54
 
55
55
  {
56
56
 
57
+ var btAdapter = BluetoothAdapter.DefaultAdapter;
58
+
59
+ var devices = btAdapter.BondedDevices;
60
+
61
+ if (devices != null && devices.Count > 0)
62
+
63
+ {
64
+
57
- getAllPairedDevices();
65
+ foreach (var device in devices)
66
+
67
+ {
68
+
69
+ var socket = device.CreateRfcommSocketToServiceRecord(getUUIDFromString());
70
+
71
+ Task.Run(() =>
72
+
73
+ {
74
+
75
+ try
76
+
77
+ {
78
+
79
+ socket.Connect();
58
80
 
59
81
 
60
82
 
61
- System.Threading.Thread thread = new System.Threading.Thread(() =>
83
+ var br = new BufferedReader(new InputStreamReader(socket.InputStream));
62
84
 
63
- {
64
85
 
65
- while(true)
66
86
 
67
- {
87
+ string data;
68
88
 
69
- var data = getDataFromDevice();
89
+ while ((data = br.ReadLine()) != null)
70
90
 
91
+ {
92
+
71
- DataReceived?.Invoke(this, new DataEventArgs(data));
93
+ DataReceived?.Invoke(this, new DataEventArgs(data));
94
+
95
+ }
96
+
97
+ }
98
+
99
+ catch (IOException e)
100
+
101
+ {
102
+
103
+ }
104
+
105
+ finally
106
+
107
+ {
108
+
109
+ socket.Close();
110
+
111
+ }
112
+
113
+ });
72
114
 
73
115
  }
74
116
 
75
- });
117
+ }
76
-
77
- thread.IsBackground = true;
78
-
79
- thread.Start();
80
118
 
81
119
  }
82
120
 

1

コード修正

2018/09/11 01:51

投稿

f-miyu
f-miyu

スコア1625

test CHANGED
@@ -50,7 +50,7 @@
50
50
 
51
51
 
52
52
 
53
- public Start()
53
+ public void Start()
54
54
 
55
55
  {
56
56