自动连接上次连接的蓝牙设备(Android开发)

上次博客分享了Android蓝牙串口开发,本次博客主要在上一次开发的基础上增加了打开app如何自动连接上次连接的蓝牙设备 。

主要思想

首先能够自动连接的前提条件是必须有一次蓝牙连接而且连接的配对信息不能删除;
想要在app中自动连接上次连接的设备,我们必须在app关闭之前保存登录的蓝牙设备信息,这里我们用SharedPreferences来帮助我们保存文件;
在下次打开app时我们必须先从文件中得到上次蓝牙的信息并且找到设备,配对。



核心代码
保存文件
   private void saveDeviceAddress() {
        SharedPreferences.Editor editor=getSharedPreferences("device",MODE_PRIVATE).edit();
        editor.putString("address",device.getAddress());
        editor.commit();
    }

 public  void autoConnect(){
        SharedPreferences pref=getSharedPreferences( "device",MODE_PRIVATE);
        String deviceAddress=pref.getString("address","");
        if (deviceAddress!=null){
            mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
            Set pairedDevices = mBluetoothAdapter
                    .getBondedDevices();// 获取本机已配对设备
            if (pairedDevices.size() > 0) {
                for (BluetoothDevice device1 : pairedDevices) {
                    if (device1.getAddress().equals(deviceAddress))
                        device=device1;
                        break;
                }
            }
         }
    }

    private void getDeviceAndConnect(){
        final Intent intent = this.getIntent();
        device =intent.getParcelableExtra("device");
        if (device==null){
            autoConnect();
        }
        if (device!=null){
            progressDialog.show();
            new ConnectThread(device).start();}
    }




你可能感兴趣的:(Android)