Blog -
これで、その4ですがやっと接続後の処理への理解になります。
前回までに接続の確立まで行いましたが
個人的に注意点として
・接続した後に、有効範囲からどちらかが居なくなる。
・どちらかの電源が切れる。
いつ切れるか解らない処理も考えながら作らないと実用的にはならない。
まだまだ、先は長いですが今回は、接続以降にどの様な処理があるか理解します。 いつもの様に、Threadで実現します。 宣言部
private class ConnectedThread extends Thread { private final BluetoothSocket mmSocket; private final InputStream mmInStream; private final OutputStream mmOutStream; //中略 }
中で使うメンバーを定義します、見た事がある奴も居ます。コンストラクタですが、BluetoothSocketからStreamを取得します。
以降、Streamとして処理が出来ます。
public ConnectedThread(BluetoothSocket socket) { mmSocket = socket; InputStream tmpIn = null; OutputStream tmpOut = null; // Get the input and output streams, using temp objects because // member streams are final try { tmpIn = socket.getInputStream(); tmpOut = socket.getOutputStream(); } catch (IOException e) { } mmInStream = tmpIn; mmOutStream = tmpOut; }
次にrun()メソッドが実行されます。
先に、Handlerについてですが、ThreadからUIに対して処理が行えません
これは非同期処理中に直接ThreadからUIへ更新を掛ける為です。考えれば非同期処理からUIを触りたい処理ばかりなのですが、やり方があります。
それは、Handlerを使う方法です。Handlerは送られてきたメッセージを受け取り、処理します非同期処理から非同期にHandlerに渡して
HandlerはそれをUIへ更新します。(正確には、postかmessageを使ってBundleなどとやり取りをするみたいです)
他に非同期処理はAsynctaskなどもあります。 今回は、HandlerのMessageを利用してUIとのやり取りを行っています。
(他にも方法はありますがobtainMessageでにやり取りの効率が良いらしいです)
mHandler.obtainMessage(MESSAGE_READ, bytes, -1, buffer).sendToTarget();
対象のメソッドと引数は obtainMessage(int what, int arg1, int arg2, Object obj) ・MESSAGE_READは、Handlerで受け取った時に
どの処理に対してか識別します。・int bytesは第一引数・bufferは、InputStream(送られて来たデータ)
これを受け取って、UIへHandlerがMessageオブジェクトとして渡しています。 と話を戻しますが。
bytes = mmInStream.read(buffer);
のメソッドでストリームからデータが送られて来るまで待機します。
送られて来たら、UIへHandlerがMessageオブジェクトとして渡しています。
public void run() { byte[] buffer = new byte[1024]; // buffer store for the stream int bytes; // bytes returned from read() // Keep listening to the InputStream until an exception occurs while (true) { try { // Read from the InputStream bytes = mmInStream.read(buffer); // Send the obtained bytes to the UI Activity mHandler.obtainMessage(MESSAGE_READ, bytes, -1, buffer) .sendToTarget(); } catch (IOException e) { break; } } }
また、こちらからデータを書き込む場合の処理を準備します。これは、メインの処理から呼ばれます。
/* Call this from the main Activity to send data to the remote device */ public void write(byte[] bytes) { try { mmOutStream.write(bytes); } catch (IOException e) { } }
キャンセル時の処理を準備しておきます。
/* Call this from the main Activity to shutdown the connection */ public void cancel() { try { mmSocket.close(); } catch (IOException e) { } }
今回までで、接続からデータの受信(正確にはサーバ側でデータ書き込みは解説してませんが)まで理解出来たかと思います。
もう少し深く理解して、後の処理も考えたいと思っています。
※GoogleDevelopers チュートリアルを使用しています。
トラックバック
トラックバックpingアドレス http://three-thread.sakura.ne.jp/tt/modules/d3blog/tb.php/28
参照元
- sports jerseys wholesale cheap china2014-11-30 7:11
- ...more
- nfl football jerseys for cheap2014-11-30 3:42
- ...more
- Wholesale Authentic NFL Jerseys With VIP Cheap Price2014-11-24 20:35
- ...more
- 2014-10-21 17:00
- ...more
- cheap nba jerseys2014-10-6 16:57
- ...more
- cheap soccer jerseys from china2014-10-5 6:12
- ...more
- Wholesale Adidas Bobcats Jerseys Cheap From China2014-10-1 6:51
- ...more
- 2014-10-1 6:24
- ...more
- 2014-10-1 6:23
- ...more
- 2014-10-1 3:25
- ...more
- 2014-10-1 3:24
- ...more
- davidtipling.co.uk/settings.html2014-9-30 16:03
- ...more
- 2014-9-29 9:30
- ...more
- 2014-9-29 9:30
- ...more
- 2014-9-28 4:56
- ...more
- 2014-9-28 4:55
- ...more
- 2014-9-24 20:20
- ...more
- 2014-9-24 20:19
- ...more
- tamimifish.com/blazer.html2014-9-24 2:55
- ...more
- 2014-9-23 9:01
- ...more
- 2014-9-23 9:01
- ...more
- 2014-9-21 17:22
- ...more
- wholesale Bengals nfl jerseys authentic2014-9-20 21:43
- ...more
- 2014-9-20 5:31
- ...more
- 2014-9-20 5:30
- ...more
- cheap Hornets jerseys from china2014-9-19 19:08
- ...more
- 2014-9-2 7:37
- ...more
- 2014-9-2 7:36
- ...more
- 2014-9-1 21:33
- ...more
- 2014-9-1 21:32
- ...more
- 2014-9-1 4:18
- ...more
- 2014-9-1 4:17
- ...more
- Nobis Womens Merideth Parka Black2014-8-25 14:26
- ...more
- 2014-8-20 11:10
- ...more
- 2014-8-20 11:09
- ...more
- 2014-8-18 13:58
- ...more
- 2014-8-18 13:58
- ...more
- 2014-8-18 3:50
- ...more
- 2014-8-17 16:03
- ...more
- 2014-8-17 16:03
- ...more
- 2014-8-14 22:10
- ...more
- 2014-8-14 11:03
- ...more
- 2014-8-13 10:40
- ...more
- 2014-8-13 10:39
- ...more
- 2014-8-12 18:49
- ...more
- 2014-8-12 14:21
- ...more
- 2014-8-12 14:20
- ...more
- 2014-8-11 17:47
- ...more
- 2014-8-11 17:45
- ...more
- 2014-8-11 17:27
- ...more
- 2014-8-11 11:32
- ...more
- 2014-8-11 11:31
- ...more
- 2014-8-11 1:49
- ...more
- 2014-8-11 1:48
- ...more
- 2014-8-10 6:05
- ...more
- 2014-8-8 17:14
- ...more
- 2014-8-8 17:14
- ...more
- 2014-8-8 17:13
- ...more
- 2014-8-7 6:11
- ...more
- 2014-8-7 6:10
- ...more
- 2014-8-6 8:42
- ...more
- 2014-8-6 8:40
- ...more
- 2014-8-6 3:19
- ...more
- 2014-8-5 21:23
- ...more
- 2014-8-5 21:22
- ...more
- 2014-8-4 2:30
- ...more
- 2014-8-4 2:29
- ...more
- 2014-8-4 1:28
- ...more
- 2014-8-4 1:15
- ...more
- 2014-8-2 9:16
- ...more
- 2014-8-2 9:14
- ...more
- 2014-8-2 6:57
- ...more
- 2014-8-2 6:57
- ...more
- 2014-7-31 18:53
- ...more
- 2014-7-31 18:52
- ...more
- 2014-7-31 7:49
- ...more
- 2014-7-31 7:48
- ...more
- 2014-7-29 5:10
- ...more
- 2014-7-29 5:10
- ...more
- 2014-7-28 11:00
- ...more
- 2014-7-28 10:59
- ...more
- 2014-7-26 23:41
- ...more
- 2014-7-26 23:41
- ...more
- 2014-7-26 7:29
- ...more
- 2014-7-26 7:28
- ...more
- 2014-7-26 4:50
- ...more
- 2014-7-26 4:49
- ...more
- 2014-7-24 6:03
- ...more
- 2014-7-24 6:02
- ...more
- usa world cup 2014 jerseys2014-7-24 2:00
- ...more
- 2014-7-23 8:37
- ...more
- 2014-7-23 8:36
- ...more
- 2014-7-21 9:25
- ...more
- 2014-7-21 9:23
- ...more
- 2014-7-20 14:13
- ...more
- 2014-7-20 14:12
- ...more
- 2014-7-20 0:12
- ...more
- 2014-7-20 0:10
- ...more
- 2014-7-19 8:48
- ...more
- 2014-7-19 8:48
- ...more
- 2014-7-18 5:22
- ...more
- 2014-7-18 5:22
- ...more
- 2014-7-16 20:36
- ...more
- 2014-7-16 20:36
- ...more
- 2014-7-15 23:57
- ...more
- 2014-7-15 23:57
- ...more
- 2014-7-15 13:03
- ...more
- 2014-7-15 13:03
- ...more
- 2014-7-14 0:11
- ...more
- 2014-7-13 23:11
- ...more
- 2014-7-13 23:10
- ...more
- 2014-7-13 20:32
- ...more
- 2014-7-13 20:31
- ...more
- 2014-7-13 6:23
- ...more
- 2014-7-13 6:23
- ...more
- 2014-7-12 19:45
- ...more
- 2014-7-12 19:17
- ...more
- 2014-7-12 19:16
- ...more
- 2014-7-8 0:13
- ...more
- 2014-7-8 0:12
- ...more
- 2014-7-7 18:08
- ...more
- 2014-7-6 10:02
- ...more
- 2014-7-6 9:35
- ...more
- 2014-7-5 4:23
- ...more
- 2014-7-5 4:23
- ...more
- 2014-7-5 1:01
- ...more
- 2014-7-5 1:00
- ...more
- 2014-7-4 13:20
- ...more
- 2014-7-4 13:20
- ...more
- 2014-7-2 4:37
- ...more
- 2014-7-2 4:36
- ...more
- cheap replica nba jerseys2014-6-2 22:27
- ...more
- Louis Vuitton Canada Outlet Online2014-6-1 16:18
- ww.louisvuittoncanada2021.com/"" target="_blank">http://www.louisvuittoncanada2021.com/" target="_blank">100% Quality Guarantee And Free Shipping!</a> uality Guar <a href="http://www.onlinearnis.com/" target="_blank">Air Jordan Shoes</a> antee And Free Shipping!
bird vicious dog Ziyaliezui, threatening low roar, it Diao back a person from the outside bone, half a stick of mud still attached heel. Bold enough to <a href="http://www.louisvuittoncanada2014.com/" target="_blank">Louis Vuitton Canada Outlet Online</a> pick up the......more - soccer jerseys Free Shipping2014-5-31 10:48
- ...more
- Cheap soccer jerseys China2014-5-29 15:22
- ...more
- {Cheap FSV Mainz 05 Choupo-Moting soccer jerseys China Free Shipping Wholesale |Choupo-Moting soccer jerseys China2014-5-25 6:53
- ...more
- wholesale nba jerseys from china2014-5-18 6:05
- ...more
- cheap nba jerseys china2014-5-16 13:25
- ...more