XJQ124 / Some-notes

本仓库记录一些电脑方面的小技巧,包含各个方面
0 stars 0 forks source link

继续学习蓝牙的知识,目前把文档大致过了一遍,遥控器的部分把蓝牙的检测和开启部分完成了 #3

Open XJQ124 opened 1 year ago

XJQ124 commented 1 year ago

任务:学习安卓蓝牙官网文档


1、目前把连接和传输数据部分都过了一遍

连接部分:

必须同时实现服务器端和客户端机制。这个很好理解,就是一端要收,一端要接 具体的方法他在文档中有提到,客户端和服务器端连接都有

传输蓝牙数据

这一部分方法,官档中也有写,不过感觉上比较麻烦,我今天是大致浏览了一下

2、开始开发

咋天的学习中,TV部分其实也有写好,只是没有实测 今天写遥控器的部分,把代码重新理了一下

    private static final int REQUEST_ENABLE_BT = 1;// 请求启用蓝牙的请求码

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        BluetoothManager bluetoothManager = getSystemService(BluetoothManager.class);
        BluetoothAdapter bluetoothAdapter = bluetoothManager.getAdapter();
        if (bluetoothAdapter == null) {
            // Device doesn't support Bluetooth
            Toast.makeText(this, "设备不支持蓝牙", Toast.LENGTH_SHORT).show();
        }else{
            Toast.makeText(this, "设备支持蓝牙", Toast.LENGTH_SHORT).show();
        }
        //调用 isEnabled() 检查当前是否启用了蓝牙
        if (!bluetoothAdapter.isEnabled()) {
            Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);//这里是访问用户权限,询问用户是否给该应用授予蓝牙的权限
            startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT);
        }
    }
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);

        if (requestCode == REQUEST_ENABLE_BT) {
            if (resultCode == RESULT_OK) {
                // 用户已启用蓝牙
                Toast.makeText(this, "蓝牙已启用", Toast.LENGTH_SHORT).show();
            } else if (resultCode == RESULT_CANCELED) {
                // 用户拒绝了启用蓝牙
                Toast.makeText(this, "用户拒绝启用蓝牙", Toast.LENGTH_SHORT).show();
            }
        }
    }
}

咋天看这块还是有点不理解,今天加了后面的这个onActivityResult()方法,他的主要主要作用就是检测用户的决定,看看是开启了还是没有开启

明日计划:完成搜索附近的设备,且把他显示出来