问题:
我想编写一个流程,允许用户使用设备拍照,然后将这些照片上传到云中的某个监听器。用户不必做任何事情来启动上传,后台监听器只会查看该文件夹,只要它找到文件就会上传并删除它们。
两个问题: 1)即使在用户不再拍照之后如何保持程序在后台运行(如果他们重新启动设备以使其唤醒并完成上传,如果有的话)
2)假设连接不稳定(一如既往)如何验证给定图像是否已完成上传,如果没有,则重新提交。
我不需要任何代码示例,我只想就实施此方法的最佳策略提出意见。
我打算使用Apache commons,只是上传到PHP,但不确定存在什么类型的错误检查以考虑连接丢弃中间文件。
TIA。
答案 0 :(得分:8)
基本上已经在几个平台上多次编写了这个应用程序,我可以告诉你,这不是一个微不足道的努力。要解决第一个问题,您可以创建一个位于后台并执行上传的服务。为了让它自动启动,您可以声明它在清单中接收到意图android.intent.action.BOOT_COMPLETED(您需要权限android.permission.RECEIVE_BOOT_COMPLETED才能使用它)。如果您要听标准相机应用程序写的内容,您可以使用registerContentObserver收听新内容 - 请注意,手机可以有多个地方存放照片!
对于第二个问题,请让您的网络服务返回有关上传完成情况的信息,客户可以使用该信息来决定重试。
答案 1 :(得分:4)
我想写一个会有的过程 允许用户用照片拍照 设备和那些照片然后是 上传到一些听众 云。
请自行启动拍照(以便知道何时上传)或创建ACTION_SEND
Activity
以插入相机应用的共享选项,以便用户可以上传方式。
用户不应该这样做 任何启动上传的事情,a 背景听众只会看 文件夹,只要找到 它中的文件会上传它们 删除它们。
请不要。
Android用户的一个主要抱怨是使用这种技术编写的应用程序 - 一些“后台监听器”占用RAM并且99.999%的时间没有提供任何值。核心Android团队被迫修改操作系统,以防止开发人员以这种方式搞砸用户的手机。较新版本的Android将在一段时间后终止您的“后台监听器”。用户可以使用“任务杀手”或“设置”应用中的“管理服务”屏幕,尽快终止“背景监听器”。
请自行启动拍照(以便知道何时上传)或创建ACTION_SEND
Activity
以插入相机应用的共享选项,以便用户可以上传方式。