2013-01-01 39 views
7

Tôi đang viết một ứng dụng gửi dữ liệu đến máy in bluetooth. Ai giúp tôi với ? làm thế nào tôi có thể sử dụng Android Bluetooth Stack để in ấn? hoặc là có bất kỳ api hoặc sdk bên ngoài để sử dụng?In Bluetooth Android

Đây là mã của tôi để tìm kiếm bluetooth ...

bluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); 
registerReceiver(ActionFoundReceiver, 
     new IntentFilter(BluetoothDevice.ACTION_FOUND)); 

private final BroadcastReceiver ActionFoundReceiver = new BroadcastReceiver() { 
    @Override 
    public void onReceive(Context context, Intent intent) { 
     String action = intent.getAction(); 
     if (BluetoothDevice.ACTION_FOUND.equals(action)) { 
      BluetoothDevice device = intent 
        .getParcelableExtra(BluetoothDevice.EXTRA_DEVICE); 
      btArrayAdapter.add(device.getName() + "\n" 
        + device.getAddress()); 
      btArrayAdapter.notifyDataSetChanged(); 
     } 
    } 
}; 

và đây là mã của tôi để gửi dữ liệu đến máy in ..

BluetoothDevice mDevice = bluetoothAdapter.getRemoteDevice("00:15:FF:F2:56:A4"); 
Method m = mDevice.getClass().getMethod("createRfcommSocket", 
     new Class[] { int.class }); 
mBTsocket = (BluetoothSocket) m.invoke(mDevice, 1); 
System.out.println("Connecting....."); 
mBTsocket.connect(); 
System.out.println("Connected"); 
OutputStream os = mBTsocket.getOutputStream(); 
os.flush(); 
os.write(Receipt.getBytes()); 
// mBTsocket.close(); 

Khi tôi viết socket.close(), dữ liệu không nhận được in máy in như kết nối ổ cắm nhận được đóng trước khi in dữ liệu .. và nếu tôi không viết socket.close() sau đó dữ liệu được in chỉ một lần .. Tôi sẽ không thể in dữ liệu lần thứ hai cho đến khi tôi khởi động lại bluetooth của điện thoại của tôi.

có ai có giải pháp cho nó không ??? hoặc có cách nào khác để loại bỏ việc in ấn này không ??

+0

Tôi muốn gửi văn bản đơn giản từ thiết bị Android đến máy in nhiệt hỗ trợ bluetooth của mình .. nhưng tôi bị nhầm lẫn về cách gửi dữ liệu đến máy in bluetooth đó, –

+0

@NiravBhandari: Tôi bị kẹt với một vấn đề tương tự. Ứng dụng của tôi khá nhiều làm điều tương tự. Nó sẽ là tuyệt vời nếu tôi có thể liên lạc với bạn để được giúp đỡ. Cảm ơn. :) – Swayam

+0

cho tôi biết vấn đề của bạn –

Trả lời

5

tôi có các giải pháp của vấn đề của tôi ...

nếu tôi muốn in dữ liệu nhiều hơn một thời gian sau đó bạn không cần phải tạo kết nối socket mới với các thiết bị ... thay vào đó gọi phương thức outputstream.write (bytes).

và cuối cùng nếu bạn muốn ngắt kết nối thiết bị, sau đó gọi phương thức mBTScoket.close() để ngắt kết nối thiết bị.

+0

Thats great, please don ' t đánh dấu câu trả lời của tôi là được chấp nhận. Đánh dấu câu trả lời của bạn. coz bạn đã giải quyết nó bằng nỗ lực của riêng bạn –

+0

bạn đã sử dụng quyền nào trong AndroidManifest.xml? –

-1

Nếu bạn đã kết nối với các thiết bị và ghép nối nó.

Vì vậy, để in, máy in muốn byte. SO Tôi đã tạo ra một con sâu bướm.

Chỉ cần gọi phương thức này và chuyển chuỗi trong đó để in.

String str = new String("This is the text sending to the printer");

private void printData() { 
    // TODO Auto-generated method stub 

    String newline = "\n"; 
    try { 
     out.write(str.getBytes(),0,str.getBytes().length); 
     Log.i("Log", "One line printed"); 
    } catch (IOException e) { 
     Toast.makeText(BluetoothDemo.this, "catch 1", Toast.LENGTH_LONG).show(); 
     e.printStackTrace(); 
     Log.i("Log", "unable to write "); 
     flagCheck = false; 
    } 
    try { 
     out.write(newline.getBytes(),0,newline.getBytes().length); 
    } catch (IOException e) {   
     Log.i("Log", "Unable to write the new line::"); 
     e.printStackTrace(); 
     flagCheck = false; 
    } 
    flagCheck = true; 
} 
+0

cảm ơn người trả lời của bạn ... thực ra tôi không thể kết nối với máy in. Tôi đã cố gắng theo trang web nhà phát triển Android được đề cập ... bạn có thể giúp tôi làm thế nào tôi có thể kết nối thiết bị Android của tôi với máy in? –

+0

Vui lòng trả lời các câu hỏi mà tôi đang yêu cầu ở đây, để tôi có thể giúp bạn rõ ràng. Bạn đã tìm kiếm các thiết bị sử dụng bluetooth chưa ?? Bạn có nhận được danh sách thiết bị bluetooth không ?? Bạn đã ghép nối với hai thiết bị bluetooth chưa ?? –

+0

Tôi đã chỉnh sửa câu hỏi với mã tìm kiếm bluetooth và gửi dữ liệu đến bluetooth như bạn đã đề cập ... xin xem lại nó –

Các vấn đề liên quan