
Contents Hide
This document details what features are currently unsupported in BrightForms on Android devices, and also which features behave slightly differently on Android compared to the Windows/Windows mobile platform. Please consider these differences with cross-platform applications and Android development.
At the end of the document, there is also an explicit list of unsupported methods for reference.
Focusing/Losing Focus not applicable for Buttons, DateTime.
Focused controls may not be selected on the device, however expressions for focus/loss of focus function as they do on Windows devices.
Tabbing/Tab Order not applicable for non-edit controls.
Show/Hide SIP not supported for edit/combo. The SIP will always appear when a writeable field is selected, and may be hidden once the Android back button is tapped on the device, or if tapped out of.
Input methods offered in Windows Mobile are not supported by edit/combo. Instead, the input selected under Language and Keyboard > Keyboard in Android’s system settings is always used.
Scrolling is performed by tapping and scrolling within controls - there are no scroll bars.
Non multi-lined edit controls are vertically centre aligned.
The drop down component of combo boxes will open in the screen for the user to scroll through and make selections. See BrightForms on Android > Using Combo Boxes for examples.
Up/Down Button property is not supported.
Custom date format will display both date and time pickers for selection consecutively with date, then time, if the formatting contains both of these formatting characters.
While other platforms will support spaces adjacent to unformatted characters in a date time formatting string, these spaces must be included within the block to be parsed successfully on Android. For example, "dd/MM/yy 'at' HH:mm" will not work, but "dd/MM/yy' at 'HH:mm" will.
Listview may not be edited in real time – showing, hiding, inserting and deleting columns not supported.
Only single selection of listview items is available.
'Headers - Drag to re-order' property is not supported.
GetColumnValue() will work for columns which are not contained in the listview.
Listview row height is determined by font size. If smaller font sizes are used, a minimum height for the row will be applied to the control.
In Windows Mobile, row values may be retrieved even when there is no row selected visually. For example, if a row is selected in the listview, but then Refresh() is called with no subsequent selection, GetCurrentRowColumnValue() will still return its values. This is not the case for BrightForms on Android; these methods will return NULL if there is no visible selection in the listview.
Scrolling in scribble controls is not supported.
Scribbles’ saving to BMP format is not supported.
Image rendering different from Windows platform; will cause differing values when reading into Base64Binary data.
For more information on how to set these values, please refer to BrightForms on Android > Pixel Density Scaling section in the Bright Software User Manual.
Forms are developed in BrightBuilder in a 1:1 ratio, which is reflected on the device.
Scaling up or down forms and their controls may be achieved via Pixel Width Scaling in a project’s settings.
Closing forms is handled by the Android device’s back button. Pressing this button on the last opened form will close BrightForms.
The system menu, user defined menus, and/or cursor navigation may be accessed by the Android device’s menu button.
On Motorola scanning devices, OpenScanner() will only apply to the current form. If a child form is opened, the scanner should be closed, and must be re-opened on return for scanning to function.
Pressing the Android device’s home button will run BrightForms in the background. As of BrightForms 8.1.2, sync rules and other processes will still function as expected.
Tab colours are not currently supported.
Forms always have their title displayed.
Forms always appear maximised.
Forms always have the help menu activated.
Notification events and actions are not supported.
Menu separators are not supported.
Menu items listed; not the menu headings themselves.
Menus may not be edited in real time with Form object methods.
For more detailed information and examples of cursor forms on the Android platform, please refer to BrightForms on Android > Cursor Forms section in the Bright Software User Manual.
The read only property of cursor forms has no effect on the Android platform.
The locale is always set to ‘def’ initially.
Dialup functionality is not supported
Only SQLite is supported as a database type.
A device name may be specified in the settings.
Pixel width scaling is supported to scale projects to varying screen sizes.
WiFi must be on to retrieve a valid Device ID.
When deploying files to the ‘My Documents’ folder, it is considered to be the ‘BrightProjects Folder’.
Specifying ‘BrightForms Engine Executable’ and ‘BrightForms Upgrade CAB’ options for attached files will have no effect in BrightForms on the Android platform.
BrightForms on Android may only sync to BrightServer instances which are version 6 or above. Previous versions of BrightServer are not supported.
The "Send server system clock for clients to synchronise" setting of BrightServer will have no effect the system clock.
Photos taken by the camera will always be taken in landscape mode.
Camera resolution is set to 640x480 by default. If a higher or lower resolution is specified, BrightForms on Android will take the image size closest to the resolution specified which is also supported by the device's camera. If a resolution larger than 1024x768 is specified, the default resolution will be used.
Requires Android 4.0 or higher.
Using the SetFromAddress(), SetFromName(), SetHost() and SetPort() methods prior to the Send method() will bypass the device's email client and send emails directly with the credentials entered prior. These values may be reset using the Reset() method.
If the body of the email text contains an HTML tag, the email message will automatically have its content type set to HTML format.
Communicating with the GPS object via COMs port is not supported, and therefore the Open() and SendMessage() methods do not apply to the Android platform. Instead, use the OpenIntermediate() method, and other GPS methods to retrieve information.
Currently not supported
HasRecord() will both return if a record exists, and increment the cursor position in the record set to the next record. The cursor will start at the record before the first record in this instance. This is in order to support the querying structure across platforms. BrightForms' GoToNext() will also have no effect in accordance to this behaviour.
On most devices, the scanner operates via software – a camera-enabled device is required, along with an Android barcode scanning application (ZXing on the Play Store). The application is opened once the Scan() method is invoked, and after closing, the Action - Scan Complete expression will run. Whether or not the scan was successful may then be retrieved by GetScanResult(). There is no need to open or close the scanner via object methods.
On a successful scan, the value returned by GetBarcode() may then be retrieved. Both 1D and 2D barcodes may be attained in this fashion.
On Motorola Symbol devices running Android 4.1 and above (such as the MC32, MC40, MC67 and TC55) the scanner must be opened and closed as performed on Windows Mobile devices. Scanning is then performed via the hardware's scanner, activated by the device's scan button or calling Scan(). This will trigger the Action - Scan Complete expression in BrightForms.
Please
note, on Symbol devices, between form opening and closing the
scanner will not remain open, and thus must be closed and re-opened
based on navigation. For more information, please refer to the
BrightForms
on Android > Barcode Scanning chapter of this document.
Pre-installation steps, and the Symbol installation APK must be downloaded and installed to support this functionality. For more information, please refer to the following page section of the Android documentation - Installation via APK on Symbol Devices.
Methods which aren't MD5 are currently not supported.
System.Sleep() does not suspend the whole system, rather, it suspends the expression for the given period of time.
RunProgram() must be specified with a URI and Intent, as well as any extra information via SetObjectState() methods. For more information, please refer to the BrightForms on Android > Launching Apps via RunProgram() section of this document.
(all methods)
SetImageQuality
(all methods)
Compact
SetCompactionSettings
GetChangedRecordCountForQuery
GetFilePath
HideBusyHourGlass
SetFilePath
ShowBusyHourGlass
EnableMenuItemByPosition
EnableMenuItemByIndex
Open
SendMessage
(all methods)
CloseScanner (non Symbol)
EnableBeeper (non Symbol)
GetBarcodeType (non Symbol)
OpenScanner (non Symbol)
SetScannerName
(all methods)
GetOSMinorVersion
RunProgramAndWait
SaveBitmapFile
ShowColumn
ShowSIP
HideSIP
SetInputMethod
InsertColumn
DeleteColumn
DeleteAllColumns