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 件のコメント:
コメントを投稿