LoginSignup
17
15

More than 5 years have passed since last update.

使用可能Bluetooth一覧を取得

Last updated at Posted at 2014-05-23

Bluetoothデバイスを一覧取得

使用可能なBluetoothが見つかった場合、ListViewにaddしていく

見つかり次第
adapter.notifyDataSetChanged(); listview.smoothScrollToPosition(adapter.getCount());
でListViewの更新と一番下まで自動でスクロールしている。

MainActivity.java
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.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;

public class MainActivity extends Activity {

    private ListView mListView;
    private ArrayAdapter<String> mAdapter;
    private BluetoothAdapter mBluetoothAdapter;
    private BroadcastReceiver mBluetoothSearchReceiver = new BroadcastReceiver(){
        @Override
        public void onReceive(Context context, Intent intent) {
            if(BluetoothDevice.ACTION_FOUND.equals(intent.getAction())){
                // 取得したbluetooth情報を取得
                BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);               
                mAdapter.add(device.getAddress());
                mAdapter.notifyDataSetChanged();
                mListView.smoothScrollToPosition(mAdapter.getCount());
            }
        }
    };

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        mListView = (ListView)findViewById(R.id.listView);
        mAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1);
        mListView.setAdapter(mAdapter);
        mListView.setOnItemClickListener(new OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view,int position, long id) {               
            }
        });

        IntentFilter bluetoothFilter = new IntentFilter(BluetoothDevice.ACTION_FOUND);
        registerReceiver(mBluetoothSearchReceiver, bluetoothFilter);

        mBluetoothAdapter = mBluetoothAdapter.getDefaultAdapter();
        mBluetoothAdapter.startDiscovery(); //検索開始
    }

    @Override
    protected void onDestroy(){
        super.onDestroy();
        mBluetoothAdapter.cancelDiscovery(); //検索キャンセル
        unregisterReceiver(mBluetoothSearchReceiver); //filter解除
    }
}
17
15
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
17
15