Kamera
Über die in einem mobilen Gerät integrierte Kamera können im Mobile Client Bilder gemacht und zum Broker geschickt werden. Alternativ können schon vorhandene Bilder aus der Bildergallerie ausgewählt werden.
Action TakePhoto()
Der Vorgang wird am Form über die Action TakePhoto() gestartet.
// Aufruf der Action beim Click eines Buttons
protected virtual void FE_btn_OnClick(FrameworkButtonEventArgs e)
{
this.TakePhoto(this.TakePhotoCallback, CameraSource.CAMERA, "Camera");
}
Wenn der Vorgang am Client abgeschlossen ist, wird die übergebene Callback-Methode aufgerufen. In ihr können die empfangenen Bilddaten weiterverarbeitet werden. Der Callback-Methode wird dafür ein Objekt mit dem Typ IFrameworkPhotoInfo übergeben.
public virtual void TakePhotoCallback(IFrameworkPhotoInfo info)
{
this.Reset();
if (info.HasError)
{
this.sMessage = info.ErrorMessage;
}
else if (info.ImageBytes == null)
{
this.sMessage = "ImageData is null";
}
else
{
if (info.Identifier == "Camera")
{
this.sMessage = "Image from camera";
}
else {
this.sMessage = "Image from gallery";
}
this.binImage = info.ImageBytes;
}
}
Berechtigung für Kamera und SD-Karte
Die TakePhoto-Action benötigt auf dem Endgerät Berechtigungen für die Benutzung der Kamera sowie für das Lesen und Schreiben von Daten (Bildern) auf die SD-Karte bzw. den internen Gerätespeicher. Diese Berechtigungen müssen z.B. auf einem Android-Gerät einmalig erteilt werden.