最終更新:
moonlight_aska 2012年06月21日(木) 22:41:36履歴
周辺のBluetoothデバイスを探すには, BluetoothAdapterクラスを利用する.


- Bluetooth01.java
- デバイスが見つかった通知を受け取るブロードキャストレシーバを定義する.
- インテントのアクションが, ACTION_FOUNDか判定する.
- Intent#getParcelableExtraメソッドで, BluetoothDeviceオブジェクトを取得する.
- BluetoothDevice#getNmae, getAddressメソッドで, デバイス名やアドレスを取得する.
- インテントフィルタを作成する.
- registerReceiverメソッドで, ブロードキャストレシーバを登録する.
- BluetoothAdapter#getDefaultAdapterメソッドで, BluetoothAdapterのインスタンスを取得する.
- BluetoothAdapter#startDiscoveryメソッドで, Bluetoothデバイスのスキャンを開始する.
- デバイスの検索中なら, BluetoothAdapter#cancleDiscoveryメソッドで, Bluetoothデバイスのスキャンを中止する.
- unregisterReceiverメソッドで, ブロードキャストレシーバの登録を解除する.
- デバイスが見つかった通知を受け取るブロードキャストレシーバを定義する.
package com.moonlight_aska.android.bluetooth01;
import android.app.Activity;
import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothDevice;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Bundle;
import android.widget.TextView;
public class Bluetooth01 extends Activity {
private BluetoothAdapter mBtAdapter;
private TextView mResultView;
private String mResult = "";
// ブロードキャストレシーバの定義
private final BroadcastReceiver mReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (BluetoothDevice.ACTION_FOUND.equals(action)){
// 見つけたデバイス情報の取得
BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
mResult += "Device : " + device.getName() + "/" + device.getAddress() + "\n";
mResultView.setText(mResult);
}
}
};
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mResultView = (TextView)findViewById(R.id.bt_text);
// インテントフィルタの作成
IntentFilter filter = new IntentFilter(BluetoothDevice.ACTION_FOUND);
// ブロードキャストレシーバの登録
registerReceiver(mReceiver, filter);
// BluetoothAdapterのインスタンス取得
mBtAdapter = BluetoothAdapter.getDefaultAdapter();
// Bluetooth有効
if (!mBtAdapter.isEnabled()) {
mBtAdapter.enable();
}
// 周辺デバイスの検索開始
mBtAdapter.startDiscovery();
}
@Override
protected void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
// 検索中止
if (mBtAdapter.isDiscovering()) {
mBtAdapter.cancelDiscovery();
}
unregisterReceiver(mReceiver);
}
}
- AndroidManifest.xml
- Bluetoot設定の操作を行うには, "android.permission.BLUETOOTH_ADMIN"パーミションを設定する.
- "android.permission.BLUETOOTH_ADMIN"パーティションを使用する場合は, "android.permission.BLUETOOTH"パーミションも設定する.
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.moonlight_aska.android.bluetooth01"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk android:minSdkVersion="8" />
<uses-permission android:name="android.permission.BLUETOOTH"/>
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<activity
android:name=".Bluetooth01"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
コメントをかく