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