android 蓝牙 搜索匹配

来源:互联网 发布:老佛爷疼晴儿还是知画 编辑:程序博客网 时间:2024/04/29 14:20
package com.example.bluedemo;import java.lang.reflect.Method;import java.util.ArrayList;import java.util.List;import java.util.Set;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.util.Log;import android.view.View;import android.view.Window;import android.widget.AdapterView;import android.widget.ListView;import android.widget.TextView;import android.widget.Toast;import android.widget.AdapterView.OnItemClickListener;public class MainActivity extends Activity {private BluetoothAdapter mBluetoothAdapter;private List liststr;private ListView listview;private MyViewAdapter myadapter;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);setContentView(R.layout.mainlist);liststr = new ArrayList();listview = (ListView) findViewById(R.id.listview);mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();Set pairedDevices = mBluetoothAdapter.getBondedDevices();if (pairedDevices.size() > 0) {for (BluetoothDevice device : pairedDevices) {liststr.add(device.getName() + "|" + device.getAddress());}}//myadapter = new MyViewAdapter(this, liststr);listview.setAdapter(myadapter);listview.setOnItemClickListener(new OnItemClickListener() {@Overridepublic void onItemClick(AdapterView<?> arg0, View arg1,int position, long arg3) {String address = liststr.get(position);address = address.substring(address.indexOf("|")+1, address.length());//获取设备BluetoothDevice btDev = mBluetoothAdapter.getRemoteDevice(address);try {Boolean returnValue = false;if (btDev.getBondState() == BluetoothDevice.BOND_NONE) {// 利用反射方法调用BluetoothDevice.createBond(BluetoothDevice// remoteDevice);Method createBondMethod = BluetoothDevice.class.getMethod("createBond");Log.d("BlueToothTestActivity", "开始配对");returnValue = (Boolean) createBondMethod.invoke(btDev);} else if (btDev.getBondState() == BluetoothDevice.BOND_BONDED) {/*connect(btDev);*/}} catch (Exception e) {e.printStackTrace();}}});IntentFilter filter = new IntentFilter(BluetoothDevice.ACTION_FOUND);this.registerReceiver(receiver, filter);filter = new IntentFilter(BluetoothAdapter.ACTION_DISCOVERY_FINISHED);this.registerReceiver(receiver, filter);}public void onClick_Search(View view) {setProgressBarIndeterminateVisibility(true);setTitle("正在扫描...");if (mBluetoothAdapter.isDiscovering()) {mBluetoothAdapter.cancelDiscovery();}mBluetoothAdapter.startDiscovery();}private final BroadcastReceiver receiver = new BroadcastReceiver() {@Overridepublic void onReceive(Context context, Intent intent) {String action = intent.getAction();if (BluetoothDevice.ACTION_FOUND.equals(action)) {BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);if (device.getBondState() != BluetoothDevice.BOND_BONDED) {liststr.add(device.getName() + "|" + device.getAddress());myadapter.notifyDataSetChanged();}} else if (BluetoothAdapter.ACTION_DISCOVERY_FINISHED.equals(action)) {setProgressBarIndeterminateVisibility(false);setTitle("搜索完成");}}};}
0 0
原创粉丝点击