2011年6月1日水曜日

Bluetoothを有効にする - Enabling Bluetooth -

このエントリーをはてなブックマークに追加
AndroidのBluetoothをOFFからONに切り替える機能をコーディングしてみました。

We coded the function switching the Bluetooth from the on state to the off state in Android device.


AndroidでBluetooth を利用するには、android.bluetoothパッケージを使います。API Levelは5です。Bluetoothが有効かどうかを調べるにはBluetoothAdapterクラスを利用します。

BluetoothAdapterクラスのメソッド
public static synchronized BluetoothAdapter getDefaultAdapter ()
Bluetoothが動作する場合はBluetoothAdapterを返します。動作しない場合はnullを返します。

public boolean isEnabled ()
Bluetoothの機能がONになっている場合はtrue、OFFに鳴っている場合はfalseを返します。


また、Bluetooth APIの利用にはAndroidManifest.xmlで次のようにパーミッションを有効にする必要があるようです。
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<uses-permission android:name="android.permission.BLUETOOTH" />



Bluetoothの有効化
BluetoothをONにするためにはBluetoothAdapter.ACTION_REQUEST_ENABLEをアクションとしたインテントを指定してstartActivityForResultを呼び出せば良いようです。

参考:startActivityForResultとonActivityResultとsetResult


プログラム
アプリを起動したら、BluetoothをONにするように働きかけるプログラムを以下のようにコーディングしました。

/SGL/src/sgl/example/bluetooth/BluetoothTest.java
package sgl.example.bluetooth;

import android.app.Activity;
import android.bluetooth.BluetoothAdapter;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;

public class BluetoothTest extends Activity{

     private final String TAG = "BluetoothTest";
     private final int REQUEST_ENABLE_BLUETOOTH = 10;

     @Override
     public void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          Log.i(TAG, "onCreate");
          BluetoothAdapter bluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
          if (bluetoothAdapter == null) {
               return;
          }

          if (!bluetoothAdapter.isEnabled()) {
               Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
               startActivityForResult(enableBtIntent, REQUEST_ENABLE_BLUETOOTH);
          }
     }

     @Override
     protected void onActivityResult(int requestCode, int resultCode, Intent data) {
          Log.i(TAG, "onActivityResult");
          if (resultCode == RESULT_OK) {
               if (requestCode == REQUEST_ENABLE_BLUETOOTH) {
                    Log.d(TAG, "success");
               }
          }
     }
}


実行結果
アプリを起動すると次のようなダイアログが表示されました。

「はい」を選択すると、ちゃんとBluetoothの機能がONになっていました。

0 件のコメント:

コメントを投稿