Android Bluetooth 蓝牙通信(一)

项目里要将原来的串口通信改成蓝牙通信,开始学习蓝牙通信。

最初版本的效果图:(两个GIF是分开录的,时间有点不同步,请见谅)

BlueToothServerBlueToothClient























功能十分简单,Client端三个按钮,分别是蓝牙开关、本机可被搜索和搜索设备,点击搜索设备即可搜索周围的蓝牙,点击搜索到的蓝牙即可连接并自动发送test。
Server端更简单,在接收到消息之后便Toast出来。具体实现看代码

注:Client端搜索设备时,Server端不仅要打开蓝牙还要将蓝牙置为可被发现状态

Client端代码:

public class MainActivity extends AppCompatActivity {
   
     //蓝牙通信需要相同的UUID和对方的蓝牙地址,UUID规定是下面的格式,只要格式对,两边的UUID相同,数字可以改变,不影响通信,但一般都是用下面这种
    static final String SPP_UUID = "00001101-0000-1000-8000-00805F9B34FB";
    Button btnSearch, btnDis;//定义布局中的按钮
    ToggleButton tbtnSwitch;//显示蓝牙开关状态的双状态按钮
    ListView lvBTDevices; //搜索到的蓝牙列表
    ArrayAdapter<String> adtDevices; //将本机的蓝牙地址显示
    List<String> lstDevices = new ArrayList<String>();//列表中蓝牙的地址
    BluetoothAdapter btAdapt;  //定义移动设备的本地的蓝牙适配器
    public static BluetoothSocket btSocket;  //Socket用来接受客户端的要求

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main); //加载 布局

        // Button 设置 通过findViewById的方法来定义
        //获得所有控件对象
        btnSearch = (Button) this.findViewById(R.id.btnSearch);
        btnDis = (Button) this.findViewById(R.id.btnDis);
        tbtnSwitch = (ToggleButton) this.findViewById(R.id.tbtnSwitch);

        //给所有的控件设置监听器
        btnDis.setOnClickListener(new ClickEvent());
        btnSearch.setOnClickListener(new ClickEvent());
        tbtnSwitch.setOnClickListener(new ClickEvent());

        // ListView及其数据源 适配器
        lvBTDevices = (ListView) this.findViewById(R.id.lvDevices);
        adtDevices = new ArrayAdapter<String>(MainActivity.this,
                android.R.layout.simple_list_item_1, lstDevices);
        lvBTDevices.setAdapter(adtDevices);
        lvBTDevices.s
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值