#Region Project Attributes
#ApplicationLabel: ImageCapture
#VersionCode: 1
#VersionName: landscape
#SupportedOrientations: unspecified
#CanInstallToExternalStorage: False
#End Region
#Region Activity Attributes
#FullScreen: False
#IncludeTitle: True
#End Region
Sub Process_Globals
Dim gfilename As String
Dim Timer1 As Timer
End Sub
Sub Globals
Dim camera1 As AdvancedCamera
Dim Panel1 As Panel
Dim i As Int = 0
Dim ScreenTimeout As Int
End Sub
Sub Activity_Create(FirstTime As Boolean)
Activity.LoadLayout("Menu")
If IsPaused(imgcap) = True Then
StartService("imgcap")
End If
End Sub
Sub Activity_Resume
SetShowWhenLocked
ScreenTimeout = GetScreenTimeout
Log("ScreenTimeout: " & ScreenTimeout)
SetScreenTimeout(60000)
Dim r As Reflector
r.Target = r.GetActivity
r.Target = r.RunMethod("getWindow")
r.RunMethod2("addFlags", 6815872, "java.lang.int")
Dim p As Phone
p.SetScreenBrightness(0.001)
Timer1.Initialize("Timer1",1000)
Timer1.Enabled=True
Timer1_Tick
End Sub
Sub SetShowWhenLocked
Dim r As Reflector
r.Target = r.GetActivity
r.Target = r.RunMethod("getWindow")
r.RunMethod2("addFlags", 6815872, "java.lang.int")
End Sub
Sub Timer1_Tick
i = i + 1
Log(i)
If i=2 Then
camera1.Initialize(Panel1, "Camera1")
Else If i=4 Then
camera1.StartPreview
Else If i=10 Then
camera1 .TakePicture
End If
End Sub
Sub Activity_Pause (UserClosed As Boolean)
SetScreenTimeout(ScreenTimeout)
StartServiceAt("imgcap",DateTime.Now + 30 * 1000,True)
End Sub
Sub Camera1_PictureTaken (Data() As Byte)
camera1.StartPreview
Dim out As OutputStream
DateTime.DateFormat="yyyyMMddHHmmss"
gfilename = DateTime.Date(DateTime.Now)
out = File.OpenOutput(File.DirRootExternal & "/weatall", gfilename & ".jpg", False)
out.WriteBytes(Data, 0, Data.Length)
out.Close
Log("Image saved: " & gfilename)
Log("image saved.")
Timer1.Enabled=False
Dim p As Phone
p.SetScreenBrightness(200)
SetScreenTimeout(ScreenTimeout)
StartService("imgcap")
Activity.Finish
End Sub
Sub Panel1_Touch (Action As Int, X As Float, Y As Float)
StartServiceAt("imgcap",DateTime.Now + 30 * 1000,True)
Activity.Finish
End Sub
Sub SetScreenTimeout(Timeout As Int)
Dim jo As JavaObject
Return jo.InitializeStatic("android.provider.Settings.System") _
.RunMethod("putInt", Array As Object(GetContext.RunMethod("getContentResolver", Null) _
, "screen_off_timeout", Timeout))
Return Timeout
End Sub
Sub GetScreenTimeout As Int
Dim jo As JavaObject
Return jo.InitializeStatic("android.provider.Settings.System") _
.RunMethod("getInt", Array As Object(GetContext.RunMethod("getContentResolver", Null) _
, "screen_off_timeout"))
End Sub
Sub GetContext As JavaObject
Return GetBA.GetField("context")
End Sub
Sub GetBA As JavaObject
Dim jo As JavaObject
Dim cls As String = Me
cls = cls.SubString("class ".Length)
jo.InitializeStatic(cls)
Return jo.GetFieldJO("processBA")
End Sub