搜索周围蓝牙设备,在我看来,有三个重要的地方,1.定义mReceiver,在这里面编写显示未匹配的蓝牙设备的代码

2.在onCreate里面,编写显示已经匹配过的蓝牙设备的代码

3.在onCreate里面,注册mReceiver

看代码:

package com.example.bluetoothtest;

import java.util.Set;

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.support.v7.app.ActionBarActivity;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

import android.widget.TextView;

public class MainActivity extends ActionBarActivity {

private Button mBtn;

private TextView mTv;

private BluetoothAdapter mBtAdapter;

private BroadcastReceiver mReceiver = new BroadcastReceiver(){

@Override

public void onReceive(Context context, Intent intent) {

// TODO Auto-generated method stub

String action = intent.getAction();

if(action.equals(BluetoothDevice.ACTION_FOUND)){

BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);

if(device.getBondState() != BluetoothDevice.BOND_BONDED)

mTv.append(device.getName() + "\n\n");

}else if(action.equals(BluetoothAdapter.ACTION_DISCOVERY_FINISHED)){

mBtAdapter.cancelDiscovery();

}

}

};

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

mTv = (TextView)findViewById(R.id.tv_show);

mBtAdapter = BluetoothAdapter.getDefaultAdapter();

mBtn = (Button)findViewById(R.id.button_search);

mBtn.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View arg0) {

// TODO Auto-generated method stub

if(mBtAdapter.isDiscovering())

mBtAdapter.cancelDiscovery();

mBtAdapter.startDiscovery();

}

});

Set devices = mBtAdapter.getBondedDevices();

if(devices.size() > 0){

for(BluetoothDevice device : devices){

mTv.append(device.getName() + "\n\n");

}

}

IntentFilter mFilter = new IntentFilter(BluetoothDevice.ACTION_FOUND);

registerReceiver(mReceiver,mFilter);

mFilter = new IntentFilter(BluetoothAdapter.ACTION_DISCOVERY_FINISHED);

registerReceiver(mReceiver, mFilter);

}

@Override

protected void onDestroy() {

// TODO Auto-generated method stub

super.onDestroy();

unregisterReceiver(mReceiver);

}

}

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐