判断当前手机蓝牙是否开启

来源:互联网 发布:网络语call是什么意思 编辑:程序博客网 时间:2024/05/18 02:39

众所周知蓝牙是我们手机都有的一个功能
可以利用代码来实现管理蓝牙的状态

private BluetoothAdapter adapter;    private BroadcastReceiver receiver = new BroadcastReceiver() {        @Override        public void onReceive(Context context, Intent intent) {            //接收蓝牙状态变化的广播            String action = intent.getAction();            //发现蓝牙设备            BluetoothDevice device=intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);            if (action.equals(BluetoothDevice.ACTION_FOUND)) {                String name=   device.getName();            } else if (action.equals(BluetoothDevice.ACTION_BOND_STATE_CHANGED)) {                //可以在监听到蓝牙状态是进行操作                switch (device.getBondState()){                    case BluetoothDevice.BOND_BONDED:                        //已经配对成功                        break;                    case BluetoothDevice.BOND_BONDING:                        //正在连接                        break;                    case BluetoothDevice.BOND_NONE:                        //取消连接                        break;                    default:                        break;                }            }        }    };    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        //蓝牙连接设备增加        IntentFilter filter = new IntentFilter(BluetoothDevice.ACTION_FOUND);        //蓝牙连接状态发生改变        filter.addAction(BluetoothDevice.ACTION_BOND_STATE_CHANGED);        //注册        registerReceiver(receiver, filter);        //获取蓝牙适配器        adapter  = BluetoothAdapter.getDefaultAdapter();        boolean isenable = adapter.isEnabled();        System.out.println(isenable + "<-=-=-=-isenable");        //获取蓝牙是否可用        Toast.makeText(MainActivity.this, isenable + "<-=-=-=-isenable", Toast.LENGTH_SHORT).show();        if (!adapter.isEnabled()) {            //开启蓝牙            adapter.enable();        } else {            Intent intent = new Intent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE);            //设置你自己的设备可以被其他设备搜索的时间;最大3600            intent.putExtra(BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION, 300);            startActivity(intent);        }        //蓝牙设备的地址        String address = adapter.getAddress();        String name = adapter.getName();        Log.d("蓝牙", "name=" + name + "  address=" + address);        //获取通过蓝牙已经连接的设备        Set<BluetoothDevice> list = adapter.getBondedDevices();        if (list != null) {            for (BluetoothDevice device : list) {                //设备名称                String dname = device.getName();            }        }        //搜索其他设备        new Thread() {            @Override            public void run() {                super.run();                //正在搜索状态                if (adapter.isDiscovering()) {                    adapter.cancelDiscovery();                }                //开始搜索其他设备;                adapter.startDiscovery();            }        }.start();    }    @Override    protected void onDestroy() {        super.onDestroy();        unregisterReceiver(receiver);    }
原创粉丝点击