挑战:
我正在与客户合作,为一系列触摸屏消费者销售点设备制作原型。我的第一个挑战是使用满足以下要求的平板电脑创建触摸屏界面:
平板电脑必须只能访问我们的网络应用。我假设这将通过应用程序中的Web视图完成。我还可以使用Cordova构建原生应用程序。
平板电脑互联网连接必须通过以太网/ usb,由于规定,不能使用wifi /蓝牙。我计划通过usb将平板电脑连接到连接以太网的覆盆子pi来实现这一目的。 raspberry pi还将托管一个非常简单的本地服务器,并成为条形码扫描仪(用于扫描产品)和信用卡扫描仪的通信中心。
如果停电,我真的希望平板电脑启动并在电源恢复时无需任何人为干预即可启动应用程序。这使我们知道自助服务终端将始终在没有工作人员帮助的情况下运行。该设备也可能位于锁定的外壳中,防止任何人触及任何物理按钮。
我不是一个Android开发者,但我知道iPad无法正常工作,因为你无法通过USB轻松提供网络连接,并且在重启后无法自动启动应用程序。
我的问题:
如果我打算退一步,我需要考虑什么?我是否需要根据每个平板电脑进行操作,并且该过程是否可以扩展以创建大量这些(~100)信息亭?我找到了关于如何将Android平板电脑放入“kiosk模式”的帖子,如this one。似乎是一个良好的开端。
在网络视图中运行此应用程序是一种很好的方法,或者是使用Cordova更好的方法构建的本机应用程序。由于维护问题,我不太可能在原生SDK中构建它。
是否可以在有电源时自动为平板电脑供电,或者是否有人必须按下电源按钮?
提前感谢您的反馈!
答案 0 :(得分:2)
平板电脑必须只能访问我们的网络应用。我假设这将通过应用程序中的Web视图完成。我还可以使用Cordova构建一个本机应用程序。
要让您的应用成为平板电脑上唯一可访问的应用,请查看新的" Kiosk模式"新的API 21(5.0或Lollipop)。如果您无法使用API 21,那么您可能会创建一个启动应用程序来禁用后退按钮,主页按钮,并找到隐藏/禁用设置和通知栏的方法。
平板电脑互联网连接必须通过以太网/ usb,由于规定,不能使用wifi /蓝牙。我计划通过usb将平板电脑连接到连接以太网的覆盆子pi来实现这一目的。 raspberry pi还将托管一个非常简单的本地服务器,并成为条形码扫描仪(用于扫描产品)和信用卡扫描仪的通信中心。
通过Android系统服务以编程方式关闭所有无线网络连接非常简单。例如:
WifiManager wifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE);
wifiManager.setWifiEnabled(false);
关闭WIFI(使用正确的应用程序权限)是否需要一切。
如果停电,我真的希望平板电脑启动并启动应用程序,无需人工干预。
据我所知,该设备在没有人为干预的情况下重新开启是不可能的。您可以通过聆听android.intent.action.BOOT_COMPLETED
意图启动应用程序。如果您的应用是默认的启动器应用,则您的应用将在启动时显示。
在生根设备方面,这将有所帮助,因为您可以获得对系统级API的更多访问权限。例如,您可以将应用程序安装为系统应用程序,并在遇到重大问题时自动重启设备。