I have been using this to capture screen to a bitmap...
But I am NOW trying to move this to a Starter service module, to get a screen bitmap as part of an error report for the new global exception handler capability. Previously this was invoked from an Activity (by calling from various exception handlers). But in its new home, I don't see how to initialize the bitmap, nor to pass to android.graphics.Canvas.draw.
Is there some approach to get a bitmap of the entire device screen from a service?
B4X:
Public Sub CaptureScreen( act As Activity, dir As String, fileName As String)
Dim Obj1, Obj2 As Reflector
Dim bmp As Bitmap
Dim c As Canvas
Obj1.Target = Obj1.GetActivityBA
Obj1.Target = Obj1.GetField("vg")
bmp.InitializeMutable(act.Width, act.Height)
c.Initialize2(bmp)
Dim args(1) As Object
Dim types(1) As String
Obj2.Target = c
Obj2.Target = Obj2.GetField("canvas")
args(0) = Obj2.Target
types(0) = "android.graphics.Canvas"
Obj1.RunMethod4("draw", args, types)
Dim Out As OutputStream
Out = File.OpenOutput( dir, fileName, False)
Dim fmt As String = "PNG"
If fileName.ToUpperCase.Contains("JPG") Then fmt = "JPEG"
If fileName.ToUpperCase.Contains("JPEG") Then fmt = "JPEG"
bmp.WriteToStream(Out, 100, fmt)
Out.Close
End Sub
But I am NOW trying to move this to a Starter service module, to get a screen bitmap as part of an error report for the new global exception handler capability. Previously this was invoked from an Activity (by calling from various exception handlers). But in its new home, I don't see how to initialize the bitmap, nor to pass to android.graphics.Canvas.draw.
Is there some approach to get a bitmap of the entire device screen from a service?