Android源码下载:Bluetooth_4.3 BLE蓝牙通信

移动开发 Android
该Demo主要是兼容了支持BLE的Android4.3终端设备之间的蓝牙通信。主要功能包含:蓝牙的开启、关闭;周围蓝牙开启设备的搜索、建连;成功建连后,通过蓝牙向对方发送消息。

功能分类:工具

支持平台:Android

运行环境:Eclipse

开发语言:Java

开发工具:Eclipse

源码大小:1.37MB

源码下载地址:http://down.51cto.com/data/1984795

源码简介

该Demo主要是兼容了支持BLE的Android4.3终端设备之间的蓝牙通信。

主要功能包含:

1、蓝牙的开启、关闭;

2、周围蓝牙开启设备的搜索、建连

3、成功建连后,通过蓝牙向对方发送消息。

注:要想观察发送/接收消息,必须双方都安装了此APP。

源码运行截图

APP打开蓝牙时,对蓝牙的请求

蓝牙通信

[[128207]]

搜索周围安装该APP的蓝牙设备

设置蓝牙的某些属性值

源码片段

  1. private void scanLeDevice(final boolean enable) { 

            if (enable) { 

  2.             // Stops scanning after a pre-defined scan period. 

                mHandler.postDelayed(new Runnable() { 

  3.                 @Override 

                    public void run() { 

  4.                     mScanning = false

                        mBluetoothAdapter.stopLeScan(mLeScanCallback); 

  5.                     invalidateOptionsMenu(); 

                    } 

  6.             }, SCAN_PERIOD); 

      

  7.             mScanning = true

                mBluetoothAdapter.startLeScan(mLeScanCallback); 

  8.         } else { 

                mScanning = false

  9.             mBluetoothAdapter.stopLeScan(mLeScanCallback); 

            } 

  10.         invalidateOptionsMenu(); 

        } 

  11.   

        // Adapter for holding devices found through scanning. 

  12.     private class LeDeviceListAdapter extends BaseAdapter { 

            private ArrayList<bluetoothdevice> mLeDevices; 

  13.         private LayoutInflater mInflator; 

      

  14.         public LeDeviceListAdapter() { 

                super(); 

  15.             mLeDevices = new ArrayList<bluetoothdevice>(); 

                mInflator = DeviceScanActivity.this.getLayoutInflater(); 

  16.         } 

      

  17.         public void addDevice(BluetoothDevice device) { 

                if(!mLeDevices.contains(device)) { 

  18.                 mLeDevices.add(device); 

                } 

  19.         } 

      

  20.         public BluetoothDevice getDevice(int position) { 

                return mLeDevices.get(position); 

  21.         } 

      

  22.         public void clear() { 

                mLeDevices.clear(); 

  23.         } 

      

  24.         @Override 

            public int getCount() { 

  25.             return mLeDevices.size(); 

            } 

  26.   

            @Override 

  27.         public Object getItem(int i) { 

                return mLeDevices.get(i); 

  28.         } 

      

  29.         @Override 

            public long getItemId(int i) { 

  30.             return i; 

            } 

  31.   

            @Override 

  32.         public View getView(int i, View view, ViewGroup viewGroup) { 

                ViewHolder viewHolder; 

  33.             // General ListView optimization code. 

                if (view == null) { 

  34.                 view = mInflator.inflate(R.layout.listitem_device, null); 

                    viewHolder = new ViewHolder(); 

  35.                 viewHolder.deviceAddress = (TextView) view.findViewById(R.id.device_address); 

                    viewHolder.deviceName = (TextView) view.findViewById(R.id.device_name); 

  36.                 view.setTag(viewHolder); 

                } else { 

  37.                 viewHolder = (ViewHolder) view.getTag(); 

                } 

  38.   

                BluetoothDevice device = mLeDevices.get(i); 

  39.             final String deviceName = device.getName(); 

                if (deviceName != null && deviceName.length() > 0

  40.                 viewHolder.deviceName.setText(deviceName); 

                else 

  41.                 viewHolder.deviceName.setText(R.string.unknown_device); 

                viewHolder.deviceAddress.setText(device.getAddress()); 

  42.   

                return view; 

  43.         } 

        } 

  44.   

        // Device scan callback. 

  45.     private BluetoothAdapter.LeScanCallback mLeScanCallback = new BluetoothAdapter.LeScanCallback() { 

      

  46.         @Override 

            public void onLeScan(final BluetoothDevice device, int rssi, byte[] scanRecord) { 

  47.             runOnUiThread(new Runnable() { 

                    @Override 

  48.                 public void run() { 

                        mLeDeviceListAdapter.addDevice(device); 

  49.                     mLeDeviceListAdapter.notifyDataSetChanged(); 

                    } 

  50.             }); 

            } 

  51.     }; 

    </bluetoothdevice></bluetoothdevice> 

源码下载地址:http://down.51cto.com/data/1984795

责任编辑:闫佳明 来源: 网络整理
相关推荐

2013-08-06 15:13:57

Android 4.3源码

2022-01-25 16:54:14

BLE操作系统鸿蒙

2015-01-15 16:25:23

Android源码Socket通信

2023-03-08 21:30:33

2023-04-17 16:10:14

鸿蒙蓝牙

2015-09-22 11:04:24

蓝牙4.0开发

2022-11-17 15:26:06

低功耗蓝牙鸿蒙

2015-01-19 13:42:08

Android游戏源码蓝牙对战五子棋

2021-09-22 09:42:41

鸿蒙HarmonyOS应用

2021-01-11 05:09:07

Android通信Qt

2021-10-30 07:55:00

BLE 蓝牙开发

2015-02-27 15:46:09

Android源码桌面APP

2023-09-19 15:58:13

Zigbee蓝牙

2013-07-29 15:13:35

2015-01-22 14:12:40

Android源码APP启动引导

2015-02-27 16:36:21

Android源码屏幕画笔Demo

2015-01-21 15:28:16

Android源码新浪微博

2011-03-04 10:37:10

iOS 4.3GM版本

2015-07-15 14:27:04

Eddystone通信苹果

2015-01-20 17:09:21

Android源码手势锁
点赞
收藏

51CTO技术栈公众号