簡體   English   中英

以編程方式使用藍牙連接兩個Android設備

[英]Connect two Android devices using bluetooth programmatically

我正在做一個藍牙項目,我想用blutooth programaticaly連接兩個設備。

我遵循tf developer.android.com的指南和代碼。任何人都可以幫我解決這個問題嗎?這是我試過的代碼。

任何人都可以告訴我構造函數從哪里接收設備對象?

private class ConnectThread extends Thread {
        private final BluetoothSocket mmSocket;
        private final BluetoothDevice mmDevice;

<!-- can anyone tell me from where device object comes here   --!>
        public ConnectThread(BluetoothDevice device) {
            // Use a temporary object that is later assigned to mmSocket,
            // because mmSocket is final
            BluetoothSocket tmp = null;
            mmDevice = device;

            // Get a BluetoothSocket to connect with the given BluetoothDevice
            try {
                // MY_UUID is the app's UUID string, also used by the server code
                tmp = device.createRfcommSocketToServiceRecord(MY_UUID);
            } catch (IOException e) { }
            mmSocket = tmp;
        }

        public void run() {
            // Cancel discovery because it will slow down the connection
            mBluetoothAdapter.cancelDiscovery();

            try {
                // Connect the device through the socket. This will block
                // until it succeeds or throws an exception
                mmSocket.connect();
            } catch (IOException connectException) {
                // Unable to connect; close the socket and get out
                try {
                    mmSocket.close();
                } catch (IOException closeException) { }
                return;
            }

            // Do work to manage the connection (in a separate thread)
            manageConnectedSocket(mmSocket);
        }

        /** Will cancel an in-progress connection, and close the socket */
        public void cancel() {
            try {
                mmSocket.close();
            } catch (IOException e) { }
        }
    }


Thanks inadvance

這是我完成任務的一些代碼。

    /**
     * Searches the list of paired devices for the device. Returns
     * if found, throws Exception otherwise.
     * 
     * @param sTargetDeviceName
     * @return BluetoothDevice 
     */
    private BluetoothDevice findDevice(String sTargetDeviceName) 
    throws Exception {

            BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter();

            Set<BluetoothDevice> devices = adapter.getBondedDevices();

            for (BluetoothDevice device : devices) {

                    String sDeviceName = device.getName().trim();

                    if (sDeviceName.startsWith(sTargetDeviceName)) {
                            return device;
                    }
            }

            throw new Exception("Device " + sTargetDeviceName + " not found");
    }

要使用上述代碼,設備必須已配對。

請參閱文檔:

http://developer.android.com/guide/topics/wireless/bluetooth.html

特別是“查找設備”部分。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM