Android中打开关闭蓝牙简单方法

本文介绍了一个基于Android的蓝牙控制应用程序。该应用通过MainActivity类实现蓝牙的开启和关闭功能。在onCreate方法中,初始化了两个按钮的点击事件监听器,并获取了默认的BluetoothAdapter实例。点击事件中,根据按钮ID分别调用enable和disable方法来控制蓝牙的状态。如果蓝牙未启用,将启动一个请求使用户可以手动启用蓝牙。
public class MainActivity extends AppCompatActivity implements View.OnClickListener {

    private static final int REQUEST_ENABLE_BT = 1;
    private BluetoothAdapter defaultAdapter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //初始化控件
        findViewById(R.id.mButton01).setOnClickListener(this);
        findViewById(R.id.mButton02).setOnClickListener(this);
        //
        defaultAdapter = BluetoothAdapter.getDefaultAdapter();
    }

    @Override
    protected void onResume() {
        super.onResume();
    }

    //点击事件
    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            //开启蓝牙
            case R.id.mButton01:
                defaultAdapter.enable();
                if (defaultAdapter == null || !defaultAdapter.isEnabled()) {
                    Intent intent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
                    startActivityForResult(intent, REQUEST_ENABLE_BT);
                }
                break;
            //关闭蓝牙

            case R.id.mButton02:
                defaultAdapter.disable();
                break;
        }
    }

    @Override
    public void onActivityReenter(int resultCode, Intent data) {
        super.onActivityReenter(resultCode, data);
        if (data == null) {
            return;
        }
        Toast.makeText(this, "蓝牙已启用", Toast.LENGTH_SHORT).show();
    }
}
Android开发中,监听蓝牙开关状态的变化可以通过广播接收器(BroadcastReceiver)来实现。具体来说,需要注册一个广播接收器来监听蓝牙适配器的状态变化,包括蓝牙是否开启或关闭。以下是实现这一功能的具体方法: 首先,创建一个继承自`BroadcastReceiver`的类,并在`onReceive`方法中处理蓝牙状态的变化。通过`Intent`获取蓝牙适配器的状态,然后根据不同的状态执行相应的操作。 ```java public class BluetoothStateReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { String action = intent.getAction(); if (BluetoothAdapter.ACTION_STATE_CHANGED.equals(action)) { int state = intent.getIntExtra(BluetoothAdapter.EXTRA_STATE, BluetoothAdapter.ERROR); switch (state) { case BluetoothAdapter.STATE_ON: // 蓝牙已经打开 break; case BluetoothAdapter.STATE_OFF: // 蓝牙已经关闭 break; case BluetoothAdapter.STATE_TURNING_ON: // 蓝牙正在打开 break; case BluetoothAdapter.STATE_TURNING_OFF: // 蓝牙正在关闭 break; } } } } ``` 接下来,在需要监听蓝牙状态变化的Activity或Service中注册这个广播接收器。注册时,需要指定要监听的蓝牙相关动作,例如蓝牙状态变化、连接状态变化等。 ```java private BluetoothStateReceiver bluetoothStateReceiver; private void registerBluetoothStateReceiver() { if (bluetoothStateReceiver == null) { bluetoothStateReceiver = new BluetoothStateReceiver(); } IntentFilter filter = new IntentFilter(); filter.addAction(BluetoothAdapter.ACTION_STATE_CHANGED); filter.addAction(BluetoothDevice.ACTION_ACL_CONNECTED); filter.addAction(BluetoothDevice.ACTION_ACL_DISCONNECTED); registerReceiver(bluetoothStateReceiver, filter); } ``` 记得在不再需要监听蓝牙状态时取消注册广播接收器,以避免内存泄漏。 ```java private void unregisterBluetoothStateReceiver() { if (bluetoothStateReceiver != null) { unregisterReceiver(bluetoothStateReceiver); bluetoothStateReceiver = null; } } ``` 以上代码片段展示了如何在Android应用中监听蓝牙开关状态的变化。通过这种方式,可以实时响应蓝牙状态的变化,从而提供更加智能的服务[^4]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值