在bluetooth android中配对设备

时间:2012-12-14 05:30:16

标签: java android bluetooth

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

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

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

当我尝试通过programmaticaly进行配对时,我正在进行此对话并在我的设备中输入对数字但在其他设备中没有响应

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

我在设备中获得此图像,当我输入对号时,我没有在另一个deivce中获得任何内容

enter image description here

1 个答案:

答案 0 :(得分: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的设备。 我希望它能奏效。告诉我,如果没有。