Android——蓝牙连接

    今天要做一个蓝牙4.0的通信,先做个小test,之后再看看具体的api:

 @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.scan:
               // bluetoothService.startBluetooth();
                //1,初始化蓝牙适配器
                final BluetoothManager bluetoothManager=(BluetoothManager) getSystemService(Context.BLUETOOTH_SERVICE);
                BluetoothAdapter bluetoothAdapter= BluetoothAdapter.getDefaultAdapter();
                //2,开启蓝牙
                if(bluetoothAdapter==null || !bluetoothAdapter.isEnabled()){
                    Intent enableBtIntent=new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
                    startActivityForResult(enableBtIntent,1);
                }
                //3,扫描附近的设备
                List<Map<String,String>> deviceList=new ArrayList<>();

                if(bluetoothAdapter.isDiscovering()){
                    bluetoothAdapter.cancelDiscovery();
                }else{
                    //每次扫描之前都先判断一下是否存在已久配对的设备
                    Set<BluetoothDevice> paireDevices=bluetoothAdapter.getBondedDevices();
                    if(paireDevices.size()>0){
                        for(BluetoothDevice device :paireDevices){
                            Map map=new HashMap();
                            map.put("deviceName",device.getName());
                            map.put("deviceAddress",device.getAddress());
                            deviceList.add(map);
                        }
                        Log.i("扫描到的已连接设备:",deviceList.toString());
                    }
                    bluetoothAdapter.startDiscovery();//开始搜索

                }
                bluetoothAdapter.cancelDiscovery();//停止扫描
                //4,通过Mac地址发送连接请求
                String myMac="";
                for(Map map : deviceList){
                    if(map.get("deviceName").toString().equals("iPhone-lhc")){
                        myMac=map.get("deviceAddress").toString();
                    }
                }
                BluetoothDevice device=bluetoothAdapter.getRemoteDevice(myMac);
                Log.i("我的Iphone手的地址为:",device.getAddress());
                //5,通过UUID使两个设备之间建立连接
                try{
                    BluetoothSocket socket=device.createInsecureRfcommSocketToServiceRecord(UUID.fromString("00001101-0000-1000-8000-00805F9B34FB"));
                    socket.connect();//通过socket连接服务器,这是一个阻塞的过程,直到连接建立或者连接失败
                }catch(Exception exception){
                    Log.e("建立蓝牙连接失败:", exception.getMessage());
                }

                break;
        }
    }

未完待续。。

时间: 2024-12-23 14:17:18

Android——蓝牙连接的相关文章

android-下面这段代码Android蓝牙连接的时候的弹出框,怎么没起到作用!

问题描述 下面这段代码Android蓝牙连接的时候的弹出框,怎么没起到作用! Dialog dlg = new AlertDialog.Builder(MainActivity.this).setTitle("蓝牙连接......").create(); dlg.show(); new Thread(){ public void run() { try { MainActivity.this.mySock.connect(); Toast.makeText( MainActivity.

框架-android蓝牙连接已经实现了,设备之间互相发送信息怎么做?

问题描述 android蓝牙连接已经实现了,设备之间互相发送信息怎么做? 我想知道两个设备间数据的传输需要做哪些事情,能说明下大致的框架吗? 解决方案 可以参考google的sample:https://github.com/googlesamples/android-BluetoothChat,已经实现了通过蓝牙进行聊天的功能了. 解决方案二: http://download.csdn.net/detail/hyb745250618/8922395可以语音传输,也可以文字聊天

Android 蓝牙连接 部分手机不成功问题(小米)

问题描述 Android 蓝牙连接 部分手机不成功问题(小米) BluetoothAdapter.getDefaultAdapter().cancelDiscovery(); BluetoothDevice mDevice = mBluetoothAdapter .getRemoteDevice(strAddress); mSocket = mDevice .createRfcommSocketToServiceRecord(MY_UUID); mSocket.connect(); mInput

Android 蓝牙连接 ESC/POS 热敏打印机打印实例(蓝牙连接篇)

公司的一个手机端的 CRM 项目最近要增加小票打印的功能,就是我们点外卖的时候经常会见到的那种小票.这里主要涉及到两大块的知识: 蓝牙连接及数据传输 ESC/POS 打印指令 蓝牙连接不用说了,太常见了,这篇主要介绍这部分的内容.但ESC/POS 打印指令是个什么鬼?简单说,我们常见的热敏小票打印机都支持这样一种指令,只要按照指令的格式向打印机发送指令,哪怕是不同型号品牌的打印机也会执行相同的动作.比如打印一行文本,换行,加粗等都有对应的指令,这部分内容放在下一篇介绍. 本篇主要基于官方文档,相

Android 蓝牙连接 ESC/POS 热敏打印机打印实例(ESC/POS指令篇)

上一篇 主要介绍了如何通过蓝牙连接到打印机.这一篇,我们就介绍如何向打印机发送打印指令,来打印字符和图片. 1. 构造输出流 首先要明确一点,就是蓝牙连接打印机这种场景下,手机是 Client 端,打印机是 Server 端. 在上一篇的最后,我们从 BluetoothSocket 得到了一个OutputStream.这里我们做一层包装,得到一个OutputStreamWriter 对象: OutputStreamWriter writer = new OutputStreamWriter(ou

lw 600p-android蓝牙连接LW-600P蓝牙打印机可以连接成功但是打印没反应

问题描述 android蓝牙连接LW-600P蓝牙打印机可以连接成功但是打印没反应 我在网上找了好多源码进行蓝牙打印的开发,发现好多都是写着可以用,但是我在使用的时候就发现,连接我手上的蓝牙打印机(LW-600P),连接部分可以成功,打印部分不管是只打印字,还是图片,打印机都没反应,也不报错,做了一星期了,一点进展都没,有人说不同打印机发送的指令不一样,我给客服打过,客服竟然什么都不提供,郁闷了,希望有做过跟我一样需求的大神指教一下,不胜感激. 解决方案 您好,我们是生产开发蓝牙打印机的,如有需

VMware安装android 使用蓝牙连接智能手环

vmware 创建的android虚拟机可以挂载主机自带的蓝牙设备去连接智能手环,即不需要单独购买蓝牙适配器.网上帖子实在太少,这里我就分享一下自己的心得,希望能帮助到需要的人.特别是windows phone的用户,或者android版本比较低的用户. 注意:如果是virtualbox 可能需要一个单独的蓝牙适配器 一 安装VMware虚拟机软件 这里大家自己百度就可以,并不是我们要将的重点 二 创建新的虚拟机 这里大家自己百度就可以,并不是我们要将的重点,注意以下的选项 网络选用NAT模式

android 同时连接蓝牙和耳机,怎样获取当前播放音频的设备

问题描述 android 同时连接蓝牙和耳机,怎样获取当前播放音频的设备 如题,当设备同时连接蓝牙和耳塞,有什么办法可以确定声音是从哪个设备出来的?

Android手机通过蓝牙连接佳博打印机的实例代码_Android

所使用的打印机为佳博打印机,支持蓝牙.wifi.usb我所使用的是通过蓝牙来连接. 在网上找到一个佳博官方针对安卓开发的App源码,但是各种的跳转,没有看太懂,所以又去问度娘,找到了一个不错的文章 Android对于蓝牙开发从2.0版本的sdk才开始支持,而且模拟器不支持,测试至少需要两部手机,所以制约了很多技术人员的开发. 1. 首先,要操作蓝牙,先要在AndroidManifest.xml里加入权限 // 管理蓝牙设备的权限 <uses-permissionandroid:name="