Android Bluetooth用法小结

来源:互联网 发布:液压计算软件 编辑:程序博客网 时间:2024/05/16 18:42

最近在进行Android Bluetooth 的学习,在学习的过程中参考了Mars老师关于蓝牙的视频教程,现对学习过程加以小结:

1.  获取本地蓝牙设备,即判断本机是否有蓝牙设备:

         BluetoothAdapter  madapter = BluetoothAdapter.getDefaultAdapter();


2.判断本机蓝牙是否打开与打开蓝牙

        madapter.isEnable()     true为打开,否则false

        if(!madapter.isEnable())

        {

             Intent  intent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);

             startActivity(intent);  //该intent启动android系统自带的activity

             //或者:madapter.enable() 不用提示,直接打开

        }


3.得到所有跟本机已经配对的蓝牙设备对象

        set <BluetoothDevice> devices = adapter.getBondedDevices();

        注:本机蓝牙设备未打开时,也可以得到跟本机已配对的蓝牙对象


4.设置本机蓝牙设备的可见性

          Intent makediscoverableIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE);

          makediscoverableIntent.putExtra(BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION , 200);  //参数二为本机蓝牙对外可见的时间, 超过300则为300

          startActivity(makediscoverableIntent);    //启动系统自带的activity传递intent


5.扫描周围的蓝牙设备

           madapter.startDiscovery();           //每扫描到一个bluetooth设备,会发送一个广播

           接收广播:

           IntentFilter intentFilter = new IntentFilter (BluetoothDevice.ACTION_FOUND);

           BluetoothReceiver bluetoothReceiver = new BluetoothReceiver();

           registerReceiver(bluetoothReceiver , intentFilter);  //注册广播接收器

           class BluetoothReceiver extends BroadCastReceivfer

           {

                 public void onReceive(Context context , Intent intent){

                       String action = intent.getAction();

                      if(BluetoothDevice.ACTION_FOUND.equals(action))

                               BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);

                 }         

            }

          

6.蓝牙建立连接

            连接分为客户端与服务器端

            服务器端:

             BluetoothServerSocket  serverSocket = madapter.ListenUsingRfcommWithServiceRecord(serverSocketName , UUID);

             serverSocket.accept();

            客户端:

             BluetoothSocket clientSocket = devices.createRfcommSocketToServiceRecord(UUID);

             clientSocket.connect();


原创粉丝点击