2012-08-08 75 views
1

我有以下任务:自动拍摄照片并上传他们每X秒的Android方法

本月晚些时候

,我将搭乘太阳能气球推出的Android智能手机(宏达电Droid Incredible)就像我做last May.

我想配置Android每X秒拍摄一张照片并将其上传到Google+。我有自动上传工作,但我还没有找到一个应用程序,可以在使用很少的系统资源时自动拍照(希望能长时间保持电话传输)。

什么应用程序或简单的脚本能够做到这一点?

我们无法在硬盘上保留照片,因为我们永远不会收回照片。它必须传送。

回答

2

我已经使用这个python脚本:

import android 
import time 

droid = android.Android() 
for i in range(5): 
    temp = str(i) 
    path = '/sdcard/picscript/' 
    path += time.strftime("%B-%_e-%_I-%M-") 
    path += temp 
    path += '.png' 
    droid.cameraCapturePicture(path, True) 

结合SL4A要循环拍照。因为它现在需要5个图像并将它们保存到名为picscript的SDcard上的文件夹中,文件名将是照片拍摄时间的时间戳。一旦他们被保存,你可以从那里上传,如果你觉得冒险,你甚至可以弄清楚如何从Python脚本本身上传它们。

您可以改变脚本使其成为无限(ish)循环,并在每张照片之间添加一段时间延迟(如果需要)。

如果您需要安装在设备上的sl4a可以,您可以从python文件运行它。如果你不想安装sl4a,你可以将它包装在android apk as detailed in this pdf. 无论你采用哪条路线,你的设备上都必须有python installed

注:我不知道这个脚本的电池使用情况,但我怀疑它会相当耗尽。在更新版本的sl4a中,API已经改变了一些,现在相机预览显示在屏幕上。我不认为它曾经显示预览,所以如果你回去抓住一个旧版本,你可能会得到更好的电池性能。 droid.cameraTakePicture(path,True)是用于在旧版本中调用的方法。

+0

我很感谢你的回答。我对python非常熟悉,所以我会试试这个。如果它解决了,我会让你知道并将其标记为已回答(尽管可能是几周)。 – glossarch 2012-08-08 18:41:59

+0

@glossarch祝你好运!出于好奇,你有计划将手机放在单元信号9000英尺的天花板下吗?或者你有其他计划将数据发送到互联网的方式吗? – FoamyGuy 2012-08-08 23:20:54

+0

我不确定天花板会是什么。当我启动20'太阳能气球时,它在马萨诸塞州9000英尺处。这将在北卡罗来纳州,我的希望是,因为它是更农村的细胞信号将更强。在新墨西哥州的一个高空天气气球发射与机载单元传输到大概30,000英尺(我的博客也描述了这一发射)。即将到来的发布是一种牺牲 - android正在进行更新,因此我们不打算将其恢复。它会传输到天花板(无论哪里)然后消失。 – glossarch 2012-08-09 13:56:57

1

首先,主要思想是使用IntentService进行捕获。

这将是相当简单的,只是重写按需方法,并采取与这里

http://developer.android.com/guide/topics/media/camera.html#access-camera

示例代码中的拍摄不必设置预览视图或只是成立了一个虚拟预览如果它不适用于您的设备。

要触发IntentService,您应该有一个AlarmManager来触发每X时间并触发意图。而BroadcastReceiver在启动时启动AlarmManagers。

+0

ImageCaptureIntent与AlarmManager结合用于重复触发器和BroadcastReceiver(接收启动事件)是对现有机器人功能的非常优雅的使用,听起来就像您可以快速启动它一样。 – Syntax 2012-08-08 03:41:06

+1

这不需要用户拍照吗? – 2012-08-08 03:42:42

+0

当然,当你说使用警报管理器触发意图服务时,我会采用它,那么你的意思是触发你自己的服务(这是执行onCommand图像捕获)? – Syntax 2012-08-08 11:33:08