4

我正在尝试通过蓝牙连接另一台 android 设备,所以首先我将设备配对,然后尝试发送另一台设备的请求。

当我调用系统蓝牙设置屏幕时,我可以配对另一台设备

    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);

我在设备中得到了这个图像,当我输入对号时,我没有在另一个设备中得到任何东西

在此处输入图像描述

4

1 回答 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 的设备。我希望它会奏效。如果没有,请告诉我。

于 2012-12-14T07:00:39.597 回答