在安卓中蓝牙配对设备

4

我正在尝试通过蓝牙连接另一个安卓设备,首先我配对了这些设备,然后我试图向另一个设备发送请求。

当我调用系统蓝牙设置界面时,我可以配对另一个设备。

    Intent btSettingsIntent = new Intent(Settings.ACTION_BLUETOOTH_SETTINGS);
    startActivityForResult(btSettingsIntent, Pair_Request);

当我尝试通过编程进行配对时,我收到了这个对话框,然后在我的设备上输入了配对数字,但是另一个设备没有响应。

    BluetoothDevice device = bluetoothAdapter.getRemoteDevice(strAddress);
    Intent intent = new Intent("android.bluetooth.device.action.PAIRING_REQUEST");
    intent.putExtra("android.bluetooth.device.extra.DEVICE", device);
    intent.putExtra("android.bluetooth.device.extra.PAIRING_VARIANT", 0);
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    startActivity(intent);

当我在设备中输入配对号码时,另一个设备上没有显示任何内容。如图所示:

enter image description here


@SahilMahajanMj 你对这个有什么想法吗? - kumar_android
你确定你的设备可以被发现吗? - Sahil Mahajan Mj
是的,我正在查询所有蓝牙设备并尝试配对设备,但在另一个设备上没有响应。我们可以在不配对的情况下连接设备吗?请指导我如何实现这一点? - kumar_android
1个回答

0
如果设备已经配对,那么你可以使用。
if(device.getBondState()==device.BOND_BONDED){

        Log.d(TAG,device.getName());
        //BluetoothSocket mSocket=null;
        try {


            mSocket = device.createInsecureRfcommSocketToServiceRecord(MY_UUID);
        } catch (IOException e1) {
            // TODO Auto-generated catch block
            Log.d(TAG,"socket not created");
            e1.printStackTrace();
        }
        try{

            mSocket.connect();

        }
        catch(IOException e){
            try {

                mSocket.close();
                Log.d(TAG,"Cannot connect");
            } catch (IOException e1) {
                Log.d(TAG,"Socket not closed");
                // TODO Auto-generated catch block
                e1.printStackTrace();
            }


        }

使用MY_UUID

private static final UUID MY_UUID = UUID.fromString("0000110E-0000-1000-8000-00805F9B34FB");

上面的代码片段仅用于将您的设备连接到支持A2DP的设备。 我希望它能够工作。如果不能,请告诉我。


请问,UUID "0000110E-0000-1000-8000-00805F9B34FB" 是什么?我该如何获取我的设备的UUID? - kumar_android
我遇到了异常,"服务发现失败",这是什么意思?我做错了什么吗? - kumar_android
@kumaand:要么两个设备没有配对,要么其中一个设备无法被发现。请进行交叉检查。 - Sahil Mahajan Mj
1
谢谢,设备已配对,两者也都可被发现...我想为这个编写客户端和服务器端的应用程序?UUID需要在双方匹配以实现此目的吗? - kumar_android

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接