teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

4

コード修正

2018/09/11 01:58

投稿

f-miyu
f-miyu

スコア1625

answer CHANGED
@@ -51,7 +51,6 @@
51
51
  }
52
52
  catch (IOException e)
53
53
  {
54
- System.Diagnostics.Debug.WriteLine(e);
55
54
  }
56
55
  finally
57
56
  {

3

コード修正

2018/09/11 01:58

投稿

f-miyu
f-miyu

スコア1625

answer CHANGED
@@ -32,29 +32,36 @@
32
32
  {
33
33
  foreach (var device in devices)
34
34
  {
35
- var socket = device.CreateRfcommSocketToServiceRecord(getUUIDFromString());
36
- Task.Run(() =>
35
+ try
37
36
  {
37
+ var socket = device.CreateRfcommSocketToServiceRecord(getUUIDFromString());
38
- try
38
+ Task.Run(() =>
39
39
  {
40
+ try
41
+ {
40
- socket.Connect();
42
+ socket.Connect();
41
43
 
42
- var br = new BufferedReader(new InputStreamReader(socket.InputStream));
44
+ var br = new BufferedReader(new InputStreamReader(socket.InputStream));
43
45
 
44
- string data;
46
+ string data;
45
- while ((data = br.ReadLine()) != null)
47
+ while ((data = br.ReadLine()) != null)
48
+ {
49
+ DataReceived?.Invoke(this, new DataEventArgs(data));
50
+ }
51
+ }
52
+ catch (IOException e)
46
53
  {
47
- DataReceived?.Invoke(this, new DataEventArgs(data));
54
+ System.Diagnostics.Debug.WriteLine(e);
48
55
  }
56
+ finally
57
+ {
58
+ socket.Close();
49
- }
59
+ }
60
+ });
61
+ }
50
- catch (IOException e)
62
+ catch (IOException e)
51
- {
63
+ {
52
- }
64
+ }
53
- finally
54
- {
55
- socket.Close();
56
- }
57
- });
58
65
  }
59
66
  }
60
67
  }

2

コード変更

2018/09/11 01:57

投稿

f-miyu
f-miyu

スコア1625

answer CHANGED
@@ -26,18 +26,37 @@
26
26
 
27
27
  public void Start()
28
28
  {
29
+ var btAdapter = BluetoothAdapter.DefaultAdapter;
29
- getAllPairedDevices();
30
+ var devices = btAdapter.BondedDevices;
30
-
31
- System.Threading.Thread thread = new System.Threading.Thread(() =>
31
+ if (devices != null && devices.Count > 0)
32
32
  {
33
- while(true)
33
+ foreach (var device in devices)
34
34
  {
35
+ var socket = device.CreateRfcommSocketToServiceRecord(getUUIDFromString());
36
+ Task.Run(() =>
37
+ {
38
+ try
39
+ {
40
+ socket.Connect();
41
+
42
+ var br = new BufferedReader(new InputStreamReader(socket.InputStream));
43
+
44
+ string data;
35
- var data = getDataFromDevice();
45
+ while ((data = br.ReadLine()) != null)
46
+ {
36
- DataReceived?.Invoke(this, new DataEventArgs(data));
47
+ DataReceived?.Invoke(this, new DataEventArgs(data));
48
+ }
49
+ }
50
+ catch (IOException e)
51
+ {
52
+ }
53
+ finally
54
+ {
55
+ socket.Close();
56
+ }
57
+ });
37
58
  }
38
- });
59
+ }
39
- thread.IsBackground = true;
40
- thread.Start();
41
60
  }
42
61
  }
43
62
  ```

1

コード修正

2018/09/11 01:51

投稿

f-miyu
f-miyu

スコア1625

answer CHANGED
@@ -24,7 +24,7 @@
24
24
  {
25
25
  public event EventHandler<DataEventArgs> DataReceived;
26
26
 
27
- public Start()
27
+ public void Start()
28
28
  {
29
29
  getAllPairedDevices();
30
30