アプリケーションの機能概要

Chapter 7 カメラ機能とBluetooth通信[写真交換アプリ]
7-1 アプリケーションの機能概要
図7.1.2 画像送信画面(送信前)
7 - 1 アプリケーションの機能概要
0
送信先選択ボタン
本章で作成するサンプルアプリは、
「写真交換アプリ」です。ここではまずそのアプリの概
1
要について解説します。
ギャラリーボタン
なお、Bluetooth通信処理はエミュレータでは動作しないため、実機にインストールし
2
カメラボタン
て動作確認する必要があります。また、画像の送受信をするために実機は、2つ必要となり
ます。2つの実機それぞれにインストールして、画像の送受信を行います。
回転ボタン
3
4
送信ボタン
クリアボタン
図7.1.1 トップ画面
5
❶
6
7
8
9
10
❷
・Bluetoothが有効に設定されていない場合、許可を確認するメッセー
ジを表示します
(❶)。
・「画像を送信」ボタンで画像送信画面に遷移します
(❷)。
・「画像を受信」
ボタンで画像受信画面に遷移します
(❷)。
200
Chapter 7
❶
❷
❸
次に画像送信画面を見てみましょう。各種ボタンの機能は次
の通りです。
・
「送信先選択」
ボタンで送信デバイス選択画面を表示します。
・
「ギャラリー」
ボタンでギャラリーアプリが起動し、送る画像を選
択します。
・
「カメラ」ボタンで写真を撮影するためのカメラ画面が表示され
ます。
・
「回転」
ボタンで画像を90度ずつ回転します
(❷→❸)
。
・
「クリア」
ボタンで送信先、画像の設定をクリア
(消去)
にします。
・
「送信」
ボタンで、選択した送信先に選択した画像を送信します。
2 01
Chapter 7 カメラ機能とBluetooth通信[写真交換アプリ]
図7.1.3 送信デバイス選択画面
7-1 アプリケーションの機能概要
図7.1.4 ギャラリー画面
図7.1.5 カメラ画面
「カメラ」ボタンを押すとカメラのプレビュー
画面が表示されます。プレビュー画面をタッチ
すると写真が撮影されます。撮影すると自動的
に画像送信画面に戻ります。
0
1
2
3
図7.1.6 画像送信画面(送信開始~送信完了)
❶
❷
「ギャラリー」ボタンを押すと
図7.1.4のような「アルバムの選
択」画面が表示されます。任意
のアルバムから画像を選択す
ると、自動的に画像送信画面
に戻ります。
❷
❸
❹
5
6
7
8
9
10
❹
それでは送信デバイス選択画面について見てみましょう。
・既にペアリングされているデバイスがあれば一覧に表示されます。
・
「デバイス検 索」ボタンで近くにあるデバイスを検出します
(❷)
。この時検索されるデバイスは、Bluetooth機能がオンに
なっていないと検索されません。
・検出されたデバイスを一覧に追加します(❸)。
・一覧の中のデバイスがタッチされると、画像送信画面の送信
先表示欄に選択したデバイスを表示します(❹)。
202
4
Chapter 7
❸
❶
・画像送信画面
(図7.1.2)
で
「送信」ボタ
ンを押すと、❶のように画像送信中の
進捗ダイアログを表示します。
・しばらく待って、画面最上部のバーを下
にドラッグして、
「 ペア設定リクエスト」
を
選択します
(❷)
。
・❸のペア設定リクエストのダイアログが
表示されるので、
「ペア設定する」
を選択
します。
(機種によっては、ペア設定リク
エストのダイアログが自動的に表示され
ます。)
・ペアリングが完了すると、送信を開始し
ます。
・送信が完了すると、送信完了のメッセー
ジを表示します
(❹)
。
203
Chapter 7 カメラ機能とBluetooth通信[写真交換アプリ]
7-1 アプリケーションの機能概要
図7.1.7 画像受信画面
▶プロジェクト構成
PictureJumpSample(プロジェクト)
src(ソースフォルダ)
0
jp.co.techfun.picturejump(パッケージ)
AppUtil.java(ユーティリティクラス:画像一時保存、画像削除、
画像リサイズ、画像回転、トーストメッセージ表示)
1
CameraActivity.java(カメラ画面アクティビティ)
2
DeviceSelectActivity.java(送信デバイス選択画面アクティビティ)
3
PictureJumpActivity.java(トップ画面アクティビティ)
PictureReceiveActivity.java(画像受信画面アクティビティ)
4
PictureSendActivity.java(画像送信画面アクティビティ)
❶
❷
❸
jp.co.techfun.picturejump.bluetooth(パッケージ)
5
BluetoothConstants.java(Bluetooth 接続用定数定義クラス)
BluetoothDeviceAdapter.java(検出デバイス一覧表示用クラス)
BluetoothDeviceDescoveryReceiver.java(デバイス検索通知を受けるブロードキャストレシーバー)
PictureReceiveJob.java(画像受信処理クラス)
6
7
PictureSendJob.java(画像送信処理クラス)
res(リソースフォルダ)
8
drawable(画像格納用フォルダ)
border.xml(テキストボーダーライン定義ファイル)
9
icon.png(アイコン画像)
❼
204
❺
❻
次に受信側のデバイスでの動作について解説します。ま
ず、画面にデバイス検出許可を確認するメッセージが表示
されます(❶)
「
。はい」ボタンを押すと、画像受信待機中の
ダイアログが表示されます(❷)。しばらく待って、画面最
上部のバーを下にドラッグして、
「ペア設定リクエスト」を選
択します。ペア設定リクエストのダイアログが出てくるの
で、
「ペア設定する」を選択します。
(機種によっては、ペア設
定リクエストのダイアログが自動的に表示されます。)ペア
リングが確立すると、データの受信が始まり(❺)、受信完
了後画像を表示します(❻)。❻の画面で「保存」ボタンが
押されると、画像をSDカードに保存し、保存メッセージを
表示します(❼)。
「再受信」ボタンを押すとキャッシュに残っていた受信画
像のデータはクリアされ、受信を再開します。
layout(レイアウト定義ファイル格納用フォルダ)
10
device_item.xml(デバイス 1 件表示用レイアウト定義ファイル)
Chapter 7
❹
device_select.xml(送信デバイス選択画面レイアウト定義ファイル)
picture_jump.xml(トップ画面レイアウト定義ファイル)
picture_receive.xml(画像受信画面レイアウト定義ファイル)
picture_send.xml(画像送信画面レイアウト定義ファイル)
values(文字列定義ファイル格納用フォルダ)
strings.xml(文字列定義ファイル)
205