カテゴリー
SugiBlog Webエンジニアのためのお役立ちTips

Bluetoothを扱う Android

この記事は最終更新日から1年以上経過しています。

AndroidでBluetoothを使ってみます。

Bluetoothアダプタークラスをインポート

import android.bluetooth.BluetoothAdapter;

アダプターとリクエストコードの定義

BluetoothAdapter mBluetoothAdapter = null;
final int REQUEST_ENABLE_BT = 1; //任意のコード

アクティビティのonCreateでアダプターをセットします。

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

	mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
}


Bluetoothを有効にするメソッドを作成します。

private void bluetoothWakeup() {
    if (mBluetoothAdapter == null) {
        Toast.makeText(this, "Bluetoothが搭載されていません。", Toast.LENGTH_LONG).show();
        return;
    }
    if (!mBluetoothAdapter.isEnabled()) {
        Intent enableIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
        startActivityForResult(enableIntent, REQUEST_ENABLE_BT);
    }
}

// 端末を周辺のBluetooth機器から検索できるようにします(300秒間有効)
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    // 自分が投げたインテントであれば応答する
    if (requestCode == REQUEST_ENABLE_BT && resultCode == RESULT_OK) {
        if (mBluetoothAdapter.getScanMode() !=
            BluetoothAdapter.SCAN_MODE_CONNECTABLE_DISCOVERABLE) {
            Intent discoverableIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE);
            discoverableIntent.putExtra(BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION, 300);
            startActivity(discoverableIntent);
        }
    }
    
    super.onActivityResult(requestCode, resultCode, data);
}

アクティビティが破棄された時にBluetoothを無効にするようにしておきます。

@Override
protected void onStop() {
	if (mBluetoothAdapter.isEnabled()) {
		mBluetoothAdapter.disable();
		Toast.makeText(this, "Bluetoothをオフにしました。", Toast.LENGTH_LONG).show();
	}
	super.onStop();
}

AndroidManifest.xmlに以下のパーミッションを追加します。

<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
この記事がお役に立ちましたらシェアお願いします
7,231 views

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です