经典蓝牙开发中,可以封装一个BluetoothManager类来实现蓝牙功能的管理和操作。下面是一个简单的BluetoothManager类的封装示例:

import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothDevice;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;

public class BluetoothManager {
    private Context mContext;
    private BluetoothAdapter mBluetoothAdapter;
    private BluetoothListener mListener;

    public BluetoothManager(Context context) {
        mContext = context;
        mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
    }

    public void setBluetoothListener(BluetoothListener listener) {
        mListener = listener;
    }

    public boolean isBluetoothSupported() {
        return mBluetoothAdapter != null;
    }

    public boolean isBluetoothEnabled() {
        return mBluetoothAdapter.isEnabled();
    }

    public void enableBluetooth() {
        if (!isBluetoothEnabled()) {
            Intent enableIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
            mContext.startActivity(enableIntent);
        }
    }

    public void disableBluetooth() {
        if (isBluetoothEnabled()) {
            mBluetoothAdapter.disable();
        }
    }

    public void startDiscovery() {
        if (mBluetoothAdapter.isDiscovering()) {
            mBluetoothAdapter.cancelDiscovery();
        }
        mBluetoothAdapter.startDiscovery();
    }

    public void stopDiscovery() {
        if (mBluetoothAdapter.isDiscovering()) {
            mBluetoothAdapter.cancelDiscovery();
        }
    }

    public void registerBluetoothReceiver() {
        IntentFilter filter = new IntentFilter();
        filter.addAction(BluetoothAdapter.ACTION_STATE_CHANGED);
        filter.addAction(BluetoothDevice.ACTION_FOUND);
        filter.addAction(BluetoothAdapter.ACTION_DISCOVERY_STARTED);
        filter.addAction(BluetoothAdapter.ACTION_DISCOVERY_FINISHED);
        mContext.registerReceiver(mBluetoothReceiver, filter);
    }

    public void unregisterBluetoothReceiver() {
        mContext.unregisterReceiver(mBluetoothReceiver);
    }

    private BroadcastReceiver mBluetoothReceiver = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
            String action = intent.getAction();
            if (action.equals(BluetoothAdapter.ACTION_STATE_CHANGED)) {
                int state = intent.getIntExtra(BluetoothAdapter.EXTRA_STATE, BluetoothAdapter.ERROR);
                if (state == BluetoothAdapter.STATE_ON) {
                    if (mListener != null) {
                        mListener.onBluetoothEnabled();
                    }
                } else if (state == BluetoothAdapter.STATE_OFF) {
                    if (mListener != null) {
                        mListener.onBluetoothDisabled();
                    }
                }
            } else if (action.equals(BluetoothDevice.ACTION_FOUND)) {
                BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
                if (mListener != null) {
                    mListener.onDeviceFound(device);
                }
            } else if (action.equals(BluetoothAdapter.ACTION_DISCOVERY_STARTED)) {
                if (mListener != null) {
                    mListener.onDiscoveryStarted();
                }
            } else if (action.equals(BluetoothAdapter.ACTION_DISCOVERY_FINISHED)) {
                if (mListener != null) {
                    mListener.onDiscoveryFinished();
                }
            }
        }
    };

    public interface BluetoothListener {
        void onBluetoothEnabled();
        void onBluetoothDisabled();
        void onDeviceFound(BluetoothDevice device);
        void onDiscoveryStarted();
        void onDiscoveryFinished();
    }
}

上述代码中的BluetoothManager类封装了一些常用的蓝牙功能,包括检测蓝牙是否支持、蓝牙是否已启用、启用和禁用蓝牙、开始和停止设备的发现、注册和注销蓝牙广播接收器等。通过setBluetoothListener方法可以设置一个BluetoothListener监听器,用于接收蓝牙状态和设备发现的回调。

实际使用时,可以在Activity或Fragment中创建一个BluetoothManager对象,并在需要的地方调用其相应方法,如下所示:

BluetoothManager bluetoothManager = new BluetoothManager(this);
bluetoothManager.setBluetoothListener(new BluetoothManager.BluetoothListener() {
    @Override
    public void onBluetoothEnabled() {
        // 蓝牙已启用
    }

    @Override
    public void onBluetoothDisabled() {
        // 蓝牙已禁用
    }

    @Override
    public void onDeviceFound(BluetoothDevice device) {
        // 发现蓝牙设备
    }

    @Override
    public void onDiscoveryStarted() {
        // 开始设备发现
    }

    @Override
    public void onDiscoveryFinished() {
        // 停止设备发现
    }
});

if (bluetoothManager.isBluetoothSupported()) {
    if (!bluetoothManager.isBluetoothEnabled()) {
        bluetoothManager.enableBluetooth();
    } else {
        bluetoothManager.startDiscovery();
    }
}

上述代码中创建了一个BluetoothManager对象,并设置了BluetoothListener监听器。然后判断设备是否支持蓝牙,如果支持,则判断蓝牙是否已启用,如果未启用,则调用enableBluetooth方法启用蓝牙;如果已启用,则调用startDiscovery方法开始设备发现。当蓝牙状态发生变化或发现蓝牙设备时,会通过BluetoothListener接口中的回调方法进行相应的处理。

这只是一个简单的蓝牙开发封装示例,具体的功能和实现方式可以根据实际需求进行调整和拓展

android 经典蓝牙开发输出封装类

原文地址: http://www.cveoy.top/t/topic/iuNe 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录