рдЗрд╕рд▓рд┐рдП, рдореЗрд░реЗ рд╕рд╛рдордиреЗ рдПрдХ рдХрд╛рд░реНрдп рдерд╛ - рдкреНрд░реЛрдЧреНрд░рд╛рдореЗрдЯрд┐рдХрд▓реА рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреНрдпрд╛ рдХреЛрдИ рднреА рдпреБрдЧреНрдорд┐рдд рдбрд┐рд╡рд╛рдЗрд╕ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдмреНрд▓реВрдЯреВрде рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдореЗрд░реЗ рдлреЛрди рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИред рдореИрдВрдиреЗ рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рдХрд┐рд╕реА рднреА рддреИрдпрд╛рд░ рд╕рдорд╛рдзрд╛рди рдХреЗ рд▓рд┐рдП рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдФрд░ рдЕрд╕рдлрд▓ рд░реВрдк рд╕реЗ рдЦреЛрдЬ рдХреА, рд▓реЗрдХрд┐рди рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рджреВрд░реА рдХреЗрд╡рд▓ рдПрдХ рд╕рдВрдХреЗрдд рд╣реИ рдХрд┐ рдмреНрд▓реВрдЯреВрде рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрдиреЗрдХреНрд╢рди рдШрдЯрдирд╛ рдХреЛ рдЯреНрд░реИрдХ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИред рд▓реЗрдХрд┐рди рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рдмрд╛рдж рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП, рдпрд╣ рдореБрдЭреЗ рд╢реЛрднрд╛ рдирд╣реАрдВ рджреЗрддрд╛ред
рджрд░рдЕрд╕рд▓, рдЙрд╕рдХреЗ рдмрд╛рдж (рдФрд░ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдПрдВрдбреНрд░реЙрдЗрдб рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рдмреНрд▓реВрдЯреВрде рдкрд░ рдЕрдиреБрднрд╛рдЧреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реНрдХреНрд░реЙрд▓ рдХрд░рдирд╛), рд╕реЛрдЪрд╛ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдпреБрдЧреНрдорд┐рдд рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рд╕рд╛рде рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рдСрдкрд░реЗрд╢рди рдХреА рд╕рдлрд▓рддрд╛ рдХреЛ рджреЗрдЦреЗрдВ: рдпрджрд┐ рд╕рдлрд▓ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдбрд┐рд╡рд╛рдЗрд╕ рдХрд╡рд░реЗрдЬ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рд╣реИ рдФрд░ рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИред рд╡рд┐рдЪрд╛рд░ рд╕рдлрд▓ рд░рд╣рд╛ред
рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЗрд╕рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд░рд╛рд╕реНрддреЗ рдкрд░ рдЕрднреА рднреА рдПрдХ рдкрдХрдбрд╝ рдереА:
BluetoothSocket bs = device.createRfcommSocketToServiceRecord(MY_UUID); bs.connect();
рдпрд╣ рдХреНрд▓рд╛рдЗрдВрдЯ рдХрдиреЗрдХреНрд╢рди рдирд┐рд░реНрдорд╛рдг рдХреЛрдб рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛, рд╣рдореЗрд╢рд╛ "рд╕реЗрд╡рд╛ рдЦреЛрдЬ рд╡рд┐рдлрд▓" рддреНрд░реБрдЯрд┐ рд▓реМрдЯрд╛рддрд╛ рд╣реИред рдлрд┐рд░ рд╕реЗ, рдЙрд╕реА рд╕рдорд╕реНрдпрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╢рд┐рдХрд╛рдпрддреЛрдВ рдХреЗ рдПрдХ рд╕рдореВрд╣ рдХреЗ рддрдереНрдп рдХреЛ рдЦреЛрдЬрдирд╛, рдкрдврд╝рдирд╛ рдФрд░ рдкреНрд░рдХрдЯ рдХрд░рдирд╛ред рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реБрдЭрд╛рд╡ рдПрдХ рдмрд╛рдд рдкрд░ рдЙрдмрд▓рд╛ рд╣реБрдЖ рд╣реИ: MY_UUID рдХреЗ рд▓рд┐рдП рд╡рд┐рднрд┐рдиреНрди рдореВрд▓реНрдпреЛрдВ рдХреА рдкреЗрд╢рдХрд╢ред рдореИрдВрдиреЗ рдЗрди рдпреБрдХреНрддрд┐рдпреЛрдВ рд╕реЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдпреВрдпреВрдЖрдИрдбреА рдХреА рдПрди-рд╡реЗрдВ рд╕рдВрдЦреНрдпрд╛ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд╡рд┐рдВрдбреЛрдЬрд╝ рдореЛрдмрд╛рдЗрд▓ рдФрд░ рдПрдВрдбреНрд░реЙрдЗрдб рдХреЗ рдмреАрдЪ рдХрдиреЗрдХреНрд╢рди рдирд╣реАрдВ рдорд┐рд▓ рд╕рдХрд╛ред рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рдмрд┐рдВрджреБ: рдЬрдм рдПрдХ "рдиреАрдВрдж" WM-рдХрдореНрдпреБрдирд┐рдХреЗрдЯрд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдЬрд╛рддреА рд╣реИ, рддреЛ рдбрд┐рд╕реНрдкреНрд▓реЗ рд░реЛрд╢рдиреА рд╣реЛрддреА рд╣реИред рдпрд╣реА рд╣реИ, рдХрдиреЗрдХреНрд╢рди рдЕрднреА рднреА рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╣реИ, рд▓реЗрдХрд┐рди рдХрд┐рд╕реА рдХрд╛рд░рдг рдХреЗ рд▓рд┐рдП рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рд╣реИред
рд╣рдорд╡рддрди рдиреЗ рд╣рд▓ рдвреВрдВрдврд╛:
Method m = device.getClass().getMethod("createRfcommSocket",new Class[] { int.class }); socket = (BluetoothSocket)m.invoke(device, Integer.valueOf(1));
рдФрд░ рдпрд╣ рд╡рд┐рдзрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдирд┐рд░реНрджреЛрд╖ рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░рддреА рд╣реИред
рд╕рд╛рдорд╛рдиреНрдп рдмреНрд▓реВрдЯреВрде рдХрдиреЗрдХреНрд╢рди рд╕рддреНрдпрд╛рдкрди рдХреЛрдб рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:
boolean checkConnected() { BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); boolean connected = false; for (BluetoothDevice device : mBluetoothAdapter.getBondedDevices()) { try { try { Method m = device.getClass().getMethod("createRfcommSocket",new Class[] { int.class }); try { BluetoothSocket bs = (BluetoothSocket) m.invoke(device,Integer.valueOf(1)); bs.connect(); connected = true; Log.d(TAG, device.getName() + " - connected"); break; } catch (IOException e) { Log.e(TAG, "IOException: "+e.getLocalizedMessage()); Log.d(TAG, device.getName() + " - not connected"); } } catch (IllegalArgumentException e) { Log.e(TAG, "IllegalArgumentException: "+e.getLocalizedMessage()); } catch (IllegalAccessException e) { Log.e(TAG, "IllegalAccessException: "+e.getLocalizedMessage()); } catch (InvocationTargetException e) { Log.e(TAG, "InvocationTargetException: "+e.getLocalizedMessage()); } } catch (SecurityException e) { Log.e(TAG, "SecurityException: "+e.getLocalizedMessage()); } catch (NoSuchMethodException e) { Log.e(TAG, "NoSuchMethodException: "+e.getLocalizedMessage()); } } return connected; }
рдмреЗрд╢рдХ, рдХреЛрдб рддреЗрдЬреА рд╕реЗ рдмрд┐рдЬрд▓реА рдХрд╛ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдлрд┐рд░ рднреА, рдХреЛрдб рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЕрдкрдиреЗ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИ, рдЦрд╛рд╕рдХрд░ рдЬрдм рд╕реЗ рдореБрдЭреЗ рдЕрдиреНрдп рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рдорд┐рд▓рд╛ред рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рдХрд┐ рдПрдВрдбреНрд░реЙрдЗрдб рдореЗрдВ рдореЗрд░рд╛ рдЕрдиреБрднрд╡ рдЗрддрдирд╛ рдмрдбрд╝рд╛ рдирд╣реАрдВ рд╣реИ, рд╢рд╛рдпрдж рдХреЛрдб рдореЗрдВ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдФрд░ рд╣реИ рдпрд╛ рдХреБрдЫ рдФрд░ рд╕рдорд╛рдзрд╛рди рд╣реИред рд▓реЗрдХрд┐рди рд╡рд┐рд╢реЗрд╖рдЬреНрдЮ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрд╕рдХрд╛ рд╕рдВрдХреЗрдд рджреЗрдВрдЧреЗред