2013-06-03 20 views
13

Tôi đang làm một ứng dụng Android và nơi tôi có MAC của thiết bị khác dưới dạng chuỗi (dài 17 ký tự) và cần sử dụng thiết bị đó để kết nối với thiết bị đó (chuỗi khởi tạo kết nối Bluetooth). Tôi đã chơi xung quanh với nó tất cả các buổi chiều và không thể tìm ra cách để làm điều đó. Vấn đề là nó không cho phép tôi đặt BluetoothDevice bằng một chuỗi. Có cách nào mà điều này có thể/phải được thực hiện không?kết nối với thiết bị có địa chỉ Bluetooth trên chuỗi

(quyết định không đặt bất kỳ của những nỗ lực của tôi ở đây là mã, nhìn thấy cách họ đầy đủ các lỗi)

Nó có để giao tiếp với một máy tính bảng đang chạy ứng dụng chính xác cùng. Tôi đã xem qua trang this trước đó và hầu hết ứng dụng của tôi dựa trên đó. Vấn đề chính của tôi là khi sử dụng ví dụ ConnectThread,

Tôi có một chuỗi có địa chỉ MAC, làm cách nào để kết nối với MAC đó?

Bất kỳ trợ giúp sẽ được đánh giá cao,

+0

Bạn đang sử dụng cấu hình Bluetooth nào? Tên thiết bị 17 ký tự có thể chỉ là địa chỉ MAC của thiết bị. – Ramp

+0

Có, xin lỗi. Có nghĩa là địa chỉ MAC ... – Marshall

Trả lời

23

Nếu tôi hiểu chính xác, bạn có địa chỉ MAC dưới dạng chuỗi và bạn muốn kết nối với thiết bị, phải không? Điều này sẽ làm việc:

BluetoothDevice device = mBluetoothAdapter.getRemoteDevice(address); 
BluetoothSocket tmp = null; 
BluetoothSocket mmSocket = null; 

// Get a BluetoothSocket for a connection with the 
// given BluetoothDevice 
try { 
    tmp = device.createRfcommSocketToServiceRecord(MY_UUID); 
    Method m = device.getClass().getMethod("createRfcommSocket", new Class[] {int.class}); 
    tmp = (BluetoothSocket) m.invoke(device, 1); 
} catch (IOException e) { 
    Log.e(TAG, "create() failed", e); 
} 
mmSocket = tmp; 

Đây là một đoạn trích từ mã nguồn của việc này đơn giản mã nguồn mở Android App: https://github.com/janosgyerik/bluetoothviewer

Ứng dụng là một công cụ đơn giản để gỡ lỗi kết nối Bluetooth và dữ liệu giao thức thô. (Hiện tại chỉ có trong ascii, tôi định thêm các tính năng để gỡ lỗi hệ thập lục phân.)

3

Trước tiên, bạn sẽ phải findout gì hồ sơ sự hỗ trợ thiết bị bluetooth, Ví dụ nó có thể là một thiết bị y tế có thể sử dụng hồ sơ HDP hoặc nó có thể được sử dụng một RS232 đơn giản hơn Bluetooth. Điều quan trọng là phải hiểu cách kết nối bluetooth được thiết lập cho các cấu hình khác nhau trước khi bạn bắt đầu viết mã.

Đây là một liên kết tốt để bắt đầu. Android SDK cũng đi kèm với một số ví dụ cơ bản mà bạn có thể bắt đầu.

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

EDIT:

Nếu thiết bị của bạn được ghép nối thành công, bạn sẽ thấy địa chỉ MAC trong danh sách các thiết bị ghép nối. Ví dụ: bạn có thể thực hiện việc này để tìm thiết bị khớp với địa chỉ MAC của thiết bị của bạn:

Hy vọng điều đó sẽ hữu ích.

+0

Xin lỗi vì tôi đã không chỉ định. Nó phải liên lạc với một máy tính bảng khác đang chạy chính xác cùng một ứng dụng. Tôi đã xem qua trang đó sớm hơn và hầu hết ứng dụng của tôi dựa trên đó. Vấn đề chính của tôi là khi sử dụng ví dụ ConnectThread, rằng tôi không biết cách đặt địa chỉ MAC (chuỗi) = mmDevice Cảm ơn câu trả lời của bạn, – Marshall

+0

Đã chỉnh sửa câu trả lời của tôi để trả lời câu hỏi của bạn. – Ramp

+0

thx buddy #upVoted –