今天写个demo,关于,安卓连接打印机,进行输出,打印机品牌 RIOCH MP1813L, 以下是代码
MainActivity相关代码
public class MainActivity extends AppCompatActivity {
private static final String PRINTER_IP = "192.168.10.251";
private static final int PRINTER_PORT = 10001;
private static final String PRINT_TEMPLATE = "这是固定的打印模板\n示例内容\n";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button printButton = findViewById(R.id.btn_print);
printButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
new Thread(new Runnable() {
@Override
public void run() {
try {
// 连接打印机
Socket socket = new Socket(PRINTER_IP, PRINTER_PORT);
OutputStream outputStream = socket.getOutputStream();
// 发送打印数据
outputStream.write(PRINT_TEMPLATE.getBytes());
outputStream.flush();
// 关闭连接
outputStream.close();
socket.close();
runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(MainActivity.this, "打印成功", Toast.LENGTH_SHORT).show();
}
});
} catch (IOException e) {
e.printStackTrace();
runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(MainActivity.this, "打印失败: " + e.getMessage(), Toast.LENGTH_SHORT).show();
}
});
}
}
}).start();
}
});
}
}
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="16dp">
<Button
android:id="@+id/btn_scan"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="扫描蓝牙设备" />
<ListView
android:id="@+id/list_devices"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1" />
<EditText
android:id="@+id/et_print_content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="输入要打印的内容" />
<Button
android:id="@+id/btn_print"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="打印" />
</LinearLayout>
AndroidManifest.xml配置的相关

运行后的效果图

但是打印机不出纸