2012-08-08 74 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