问题描述
希望能够从其Android设备(例如:AMLogic Android Box, 版本4.2或4.4)中分享一个全尺寸的主机USB端口上的打印机到网络,而不只是将文件上传到云存储。他提到已经有大量的信息关于如何从安卓设备打印到现有网络打印机,但没有找到直接使用Android设备作为服务器的信息。他想了解是否有任何方法可以实现在基于Linux服务的方法下实现这个功能。
解决方案
请注意以下操作注意版本差异及修改前做好备份。
方案1:使用CUPS(Common Unix Printing System)
CUPS
是一个跨平台的免费开源打印系统,通过它可以支持多种打印机协议。下面将介绍如何在Android上以Linux下的服务模式启动和配置CUPS:
准备工作
- Android设备须安装具有root权限的ROM或操作系统版本。
- Android设备应连接至稳定的互联网以便获取所需软件。
具体操作步骤
- 获取并安装root权限:确认您的Android box拥有root权限。如果没有,可能需要您寻找支持root的操作系统。
- 安装必要的工具和软件包
shell
apk update && apk add curl wget ca-certificates python3 - 设置CUPS服务
首先将CUPS及其相关依赖项作为守护进程安装在后台运行:
shell
apk add cups
service cupsys start # 启动CUPS服务配置打印机(此步骤假设您已经连接了一个USB打印机)
测试配置
确保网络中所有设备能访问到该设备上的打印机,可以通过设置并打印一个简单的文本测试页来验证。
方案2:使用IPP(Internet Printing Protocol 或者其他网络协议)
除了CUPS之外,也可以考虑直接将打印任务通过网络发送至已存在的支持IPP的打印机。这使得无需直接在Android盒子上安装复杂的打印服务也能实现这一目标:
- 配置支持ipp的打印机连接,并保证它们能识别ipp请求。
- 发送print job命令到指定ipp地址和端口,具体可以通过curl或http来实现。
shell
curl -T "document.print" http://printer-ip-address:631/printers/PrinterName --user admin:admin-password
方案3:使用第三方App或云打印服务
利用一些专门设计用来管理打印机的Android应用程序,有些可能还提供了将pdf或文档文件保存为本地存储选项后自动印刷(如Dropbox的文档可以直接发送到预定义的打印设备)。
具体操作步骤
- 下载并安装合适的app。
- 通过手机界面上传要印刷的文档,一些应用可能会提供自动打印功能在指定条件满足时触发。
- 确保文件保存位置可以由这些应用程序访问,并检查其是否支持你的设备环境。
以上三种方案中,CUPS + USB打印机
可能是最直接和有效的实现方式。通过正确配置上述服务与硬件,您可以成功地将Android盒子转变为一个可用的打印服务器,而不仅限于简单的云存储使用场景。请务必安装有相应的开发工具包,并根据其官方文档进行详细配置以避免不必要的错误发生。