【发布时间】:2012-12-16 04:31:48
【问题描述】:
我正在编写一个向蓝牙打印机发送数据的应用程序。谁能帮我 ?如何使用 android 蓝牙堆栈进行打印?或者是否有任何外部 api 或 sdk 可以使用?
这是我搜索蓝牙的代码...
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();
}
}
};
这是我向打印机发送数据的代码..
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();
当我写 socket.close() 时,数据没有打印到打印机,因为套接字连接在打印数据之前关闭了..如果我没有写 socket.close() 那么数据只打印一次..在我重新启动手机蓝牙之前,我将无法第二次打印数据。
任何人都可以解决它吗???或者有没有其他方法可以摆脱这种打印??
【问题讨论】:
-
我想将简单的文本从我的 android 设备发送到支持蓝牙的热敏打印机。但我对如何将数据发送到蓝牙打印机有点困惑,
-
@NiravBhandari :我遇到了类似的问题。我的应用程序几乎做同样的事情。如果我能与您取得联系以寻求帮助,您会非常高兴。谢谢。 :)
标签: android printing bluetooth