关于蓝牙的操作(开启+关闭+搜索+可被发现蓝牙)

【关于蓝牙的操作(开启+关闭+搜索+可被发现蓝牙)】activity_main.xml

MainActivity.java
package com.wzq.bluetooth; 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.AppCompatActivity; import android.view.View; import android.widget.Button; import android.widget.Toast; import butterknife.BindView; import butterknife.ButterKnife; import butterknife.OnClick; public class MainActivity extends AppCompatActivity {//代替findviewByid; @BindView(R.id.btn_start) Button btnStart; @BindView(R.id.btn_stop) Button btnStop; @BindView(R.id.btn_discoverable) Button btnSearch; @BindView(R.id.btn_search) Button button4; private BluetoothAdapter bluetoothAdapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ButterKnife.bind(this); //获取蓝牙适配器 bluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); }@OnClick({R.id.btn_start, R.id.btn_stop, R.id.btn_search, R.id.btn_discoverable}) public void onViewClicked(View view) { switch (view.getId()) { case R.id.btn_start: bluetoothAdapter.enable(); Toast.makeText(MainActivity.this,"蓝牙已打开",Toast.LENGTH_SHORT).show(); break; case R.id.btn_stop: bluetoothAdapter.disable(); Toast.makeText(MainActivity.this,"蓝牙已关闭",Toast.LENGTH_SHORT).show(); break; case R.id.btn_discoverable: discoverableBluetooth(); break; case R.id.btn_search: searchBluetooh(); break; } }/** * 打开蓝牙的可检测性 */ private void discoverableBluetooth() {Intent intent = new Intent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE); startActivityForResult(intent,0); Toast.makeText(MainActivity.this,"蓝牙可检测性已打开",Toast.LENGTH_SHORT).show(); }//搜索蓝牙 private void searchBluetooh() { //添加蓝牙可以被发现 IntentFilter intentFilter = new IntentFilter(BluetoothDevice.ACTION_FOUND); MBluetoothBroadCast mBluetoothBroadCast = new MBluetoothBroadCast(); registerReceiver(mBluetoothBroadCast,intentFilter); IntentFilter intentFilter1 = new IntentFilter(BluetoothAdapter.ACTION_DISCOVERY_FINISHED); registerReceiver(mBluetoothBroadCast,intentFilter1); //开始找蓝牙设备 bluetoothAdapter.startDiscovery(); }//符合我注册的过滤器 ,就可以进入onReceive方法 class MBluetoothBroadCast extends 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); if(device.getBondState()!=BluetoothDevice.BOND_BONDED){ //用设备获取蓝牙名字 System.out.println(device.getName()+",,,,,,,,,,,,,,,,"); } //如果搜索完毕,会进入这个判断; }else if(BluetoothAdapter.ACTION_DISCOVERY_FINISHED.equals(action)){ Toast.makeText(MainActivity.this, "已搜数完成", Toast.LENGTH_LONG).show(); }} }@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); }}

    推荐阅读