Bluetoothが使えるかチェック
Checking for Availabirlity of Bluetooth
市場に今出回っているほとんどのAndroidデバイスは
Bluetoothに接続できる能力を持っています。
Bluetoothは近距離でのコミュニケーション、
デバイス間で小さなデータパケットのやり取りをするときなどに
非常に有用です。
ここで紹介するいくつかのコードはBluetoothを介して、
コミュニケーションをとるAndroidアプリケーションを
どのように開発するかを示します。
まず、ターゲットとなるデバイスがBluetoothラジオが使えるかどうかを
どのように判断するかを示します。
開発するアプリケーションでBluetooth機能を使うためには、
AndroidManifest.xmlファイルに2つのパーミッションを加える
必要があります。
<uses-permission android;name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
以下のオブジェクトを宣言しておきます。
BluetoothAdapter bluetoothAdapter;
static final int REQUEST_ENABLE_BT = 0;
BluetoothAdapterオブジェクトはデバイス上のBluetoothアダプタを
表すのに使われます。
一度このオブジェクトのインスタンスを生成したら、
デバイス上にペアとなるデバイスのリストを得られ、
ソケットとの同期などを作ります。
BluetoothAdapterオブジェクトのインスタンスを作るためには、
BlutoothAdapterクラスのgetDefaultAdapter()メソッドを使います。
bluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
デバイスでBluetoothが使えるかどうかを判断するためには、
BluetoothAdapterオブジェクトの値がnullかどうかを
単純にチェックするだけで済みます。
//---check if bluetooth is available on the device---
private boolean IsBluetoothAvailable(){
if(bluetoothAdapter == null)
return false;
else
return true;
}
もしBluetoothが利用可能ならば、isEnabled()メソッドを使って
Bluetoothがオンになっているか確認する必要があります。
if(IsBluetoothAvailable()){
if(!bluetoothAdapter.isEnabled)){
//---you can also use this; but do not use without explicit user
//permission---
//bluetoothAdapter.enable();
Intent i = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
startActivityForReult(i, REQUEST_ENABLE_BT);
}else{
bluetoothAdapter.disable();
}
}
デバイスのBluetoothラジオをプログラムでオンにするためには、
ACTION_REQUEST_ENABLEアクションを使ってIntentオブジェクトを
作ります。
Bluetoothラジオをオフにするには、
BluetoothAdapterオブジェクトのdisable()メソッドを呼び出すだけです。
Intentオブジェクトを使ってBluetoothラジオをオンにした時に、
オンにしていいかどうかを尋ねるプロンプトがデバイスの画面に
出てきます。
ちょっと注釈
BluetoothAdapterオブジェクトのenable()メソッドを使って
Bluetoothラジオをプログラムでオンにもできます。
しかし、そうすることでユーザの介入無しに自動的にラジオをオンに
します。開発者は明確にユーザの許可を尋ねる形をとらずに
Bluetoothをオンにすべきではありません。
ユーザがBluetoothラジオをオンにするために”Yes"をタップし、
”No"をタップすればBluetoothはオフのままです。
onActivityResult()メソッドを経由してBluetoothラジオが
オン、オフになったかどうかを判断できます。
onActivityResule()メソッドは、intentを行使するための
startActivityForResule()メソッドを使うときの
コールバックメソッドです。
protected void onActivityResult(int requestCode, int resultCode,
Intent data){
if(requestCode == REQUEST_ENABLE_BT){
if(resultCode == RESULT_OK){
Log.d("onActivityResult", "Bluetooth turned on");
}else{
Log.d("onActivityResult", "Bluetooth failed to turn on.");
}
}
|
【用語解説】
XML
HTMLと同じような言語ですが、
すべての型の複雑なデータ構造を
送信するための設計ができる
ファイル型式。
オブジェクト
ある手続きを持った
データアイテムで、
他の手続きと関連づけされるもの
metaタグ
ウェブページに与える
情報の宣言につかわれ
検索エンジン・ウェブアプリ
などにウェブページの内容を
伝える役目をする。
metaタグの内容は
ページ内に表示されない。
コンストラクタ
オブジェクト指向
プログラミングで使われ
新しいオブジェクトが
作られ時に呼び出される
メソッドのこと。
クラス
オブジェクト指向
プログラミングでの
オブジェクトの型
オブジェクト指向プログラミング
プログラミングの
方式のことで、
プログラマはデータ型を
定義できるだけでなく
自動的にデータ型と
メソッドを関連付け
できる
アクティビティ
Androidにおける
アクティビティは
Androidアプリの画面に
相当するもの
ボタンやウェブページ
など表示されている
すべてのもののこと。
view
Androidのアプリを開発する
上で使う部品のことで、
トリガボタン・イメージボタン
チェックボックスなどのこと。
UI
ユーザインターフェースのこと。
Bind(バインド)
シンボルとデータを
関連させるため
または、データの一片と
他のものを関連させること。
以下は例。
・変数に値を入れる。
(変数の初期化)
・特定のEthernetポートと
ネットワークプロトコルを
関連付けする。
・Javaの変数のセット上に
XML文書を配置すること。
または、ほかの
プログラミング言語でも。
|