2011-07-03 33 views
5

Bir bilgisayarın Bluetooth COM bağlantı noktası üzerinden iletişim kurmak için tasarlanmış olan bluetooth aygıtlarıyla iletişim kurabilme yeteneğini araştırmak için biraz zaman harcadım. Kesin bir cevap bulamadım, bu yüzden burada sormam gerektiğini düşündüm. Bunun Android ile mümkün olduğundan emin olmak istiyorum.Android Bluetooth COM bağlantı noktası

Bluetooth iletişiminde yeniyim, ancak şu ana kadar yaptığım araştırma beni istediğim gibi kulağa çıkaran RFCOMM'ye yönlendiriyor. Maalesef, bunun aslında mümkün olduğunu hala doğrulayamıyorum.

Bu konuyla ilgili herhangi bir yardım/kaynak çok takdir edilecektir.

+0

? Com portu PC'de, aldığım bluetooth cihazı değil, bilgisayara bağlanıyor. –

+0

Yani tamamen emin değilim, bluetooth cihaz için talimatlar bluetooth COM portu üzerinden eşleştirmeyi söylüyor. Aradığım belirli bir şey var mı? Söylediğim gibi, hala kafamı bu şeylerin etrafına sarmaya çalışıyordum. –

+0

Sadece cihazları eşleştirmek ve ne olduğunu görmek için kod yazmayı deneyin. –

cevap

11

Evet, Android, PC'lerde Bluetooth COM bağlantı noktalarına bağlanabilir. Şu anda böyle bir uygulama geliştiriyorum. İşte bir kod örneği (bluetooth izinleri Manifest.xml dosyasında ayarlanabilir te Ite gerektirir) 'dir:

<uses-permission android:name="android.permission.BLUETOOTH" /> 

Java: o bluetooth COM portu üzerinden iletişim için tasarlanmıştır nasıl

BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter(); 
if (adapter == null) { 
    // Device does not support Bluetooth 
    finish(); //exit 
} 

if (!adapter.isEnabled()) { 
//make sure the device's bluetooth is enabled 
    Intent enableBluetooth = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE); 
    startActivityForResult(enableBluetooth, REQUEST_ENABLE_BT); 
} 

final UUID SERIAL_UUID = UUID.fromString("00001101-0000-1000-8000-00805F9B34FB"); //UUID for serial connection 
mac = "00:15:83:3D:0A:57"; //my laptop's mac adress 
device = adapter.getRemoteDevice(mac); //get remote device by mac, we assume these two devices are already paired 


// Get a BluetoothSocket to connect with the given BluetoothDevice 
BluetoothSocket socket = null; 
OutputStream out = null; 
try { 
    socket = device.createRfcommSocketToServiceRecord(SERIAL_UUID); 
} catch (IOException e) {} 

try {   
    socket.connect(); 
    out = socket.getOutputStream(); 
    //now you can use out to send output via out.write 
} catch (IOException e) {} 
+0

BluetoothSocket ile soket üzerinde okuma/yazma için zamanaşımlarını tutmam gerekiyorsa ne yapmalıyım? Yönteminizi kullanarak bağlanan bir Android uygulaması geliştiriyorum, ancak yine de zamanlama ile başa çıkamıyorum ve uzaktaki Bluetooth cihazım biraz özel olduğu için gerçekten çok önemli. – Sonhja

+0

Bunu kendim yaptım ama burada açıklanan yöntemler yardımcı olabilir: http://developer.android.com/reference/android/bluetooth/BluetoothDevice.html ve http://developer.android.com/reference/android/bluetooth/ BluetoothSocket.html # isConnected() – Konsalik

+0

Kodunuzu denedim ancak connect: java.io.IOException: okuma başarısız oldu, yuva kapalı veya zaman aşımı, android.bluetooth.BluetoothSocket öğesinden ret: -1 ifadesini çağıran bu özel durum var. readAll (BluetoothSocket.java:637) – devmao

İlgili konular