The "SmartDocs" bar can customize this page to show only the features present on a particular Zebra device.
OSX, MX and Android version information for a device can be found in the Android Settings panel or by querying the device through ADB, EMDK or the MX CSP. More info.
The Bug Report Manager (BugReportMgr) provides a framework for reporting the time, date, user input and relevant technical data associated with perceived issues on Zebra mobile computers, building on the standard Android bug reporting mechanism. Bug reports can be triggered programmatically through an intent or manually using a button on the "Power Off" Menu without enabling Developer Options on the device. Bug report files can be stored in device flash (fixed or removable) in numbers limited only by available memory. In addition to local storage, reports also can be sent to a designated e-mail address and/or uploaded to the Zebra Cloud.
Key Facts
bugreport-YYYY-MM-DD-HH-MM-SS.zip
.bugreport-YYYY-MM-DD-HH-MM-SS-Error_name.zip
.com.symbol.mxmf.intent.START_FOR_BUG_REPORT
.
A Zebra bug report (called 'browser-crash') adds a user-generated input file to Android .txt and .png bug-report files.
Among the value-adds of Bug Report Manager is the user Dialog, which can gather information from the person using the device on which a bug has manifested, often providing valuable insight to the root cause of the defect. This "questionnaire" appears when the bug report is generated, and should be designed to gather relevant information from the device user about activities that might have led to or caused the malfunction being reported. User-entered data is stored in a separate text file within the bugreport.zip
. The construction of a Dialog is cumulative; any number of user-entry fields (Text Boxes) and field Labels can be added until all desired questions are asked and all data-gathering needs are addressed.
A sample user Dialog or "questionnaire" for the device user.
Note: To ensure proper operation, each new Dialog must begin with a 'ClearDialog' Action and end with a 'LayoutEnd' Action.
The FileNameTextBox can prompt the user to provide an "Error Name" for the bug being reported. This optional feature can help with bug report identification and organization for administrators dealing with large numbers of files. Text entered in this field is appended to the bug report's file name (following the date and time) and becomes the name of the file within the report's zip file that stores the user-entered data. Spaces entered into this field are converted to underscore characters; other non-text characters are removed. If left blank by the user, "no_user_entry" will appear.
Sample user Dialog boxes showing Text Boxes, Labels and useful "hint" text.
A Label is a static text field used to ask a question or provide instructions for entering information into the blank text box immediately below it. For example, the Label above a text field intended to capture the activity that led to a crash might ask "What were you doing immediately before the error occurred?" Any number of Labels can be added to a Dialog.
A Text Box is a blank field into which a user enters the answer to a question or description of an issue. Text Boxes allow the administrator to include "hint" text to help guide the user toward the desired input (i.e. "Which app was being used?"). Hint text populates the otherwise blank text field (as shown above) and disappears the moment the user begins typing.
Note: In the generated bug report, hint text becomes the label for data entered by the user in that field, so it's important to consider the hint text carefully. For example, while a hint such as "Your Name" would naturally be helpful to the user, the person reading the report might be better served by "Person reporting bug," which also is helpful to the user.
Note: To ensure proper operation, each new Dialog must begin with a 'ClearDialog' Action and end with a 'LayoutEnd' Action.
This is the On/Off switch for Zebra Bug Reporting on the device. When enabled (option 2), Zebra Bug Reporting is used to generate, store and transport bug reports and to supplement reports with information provided by the device user, if desired. When this parameter is disabled (option 1), the device uses Android bug reporting functionality.
Parm Name: BugReportProfile
Option | Name | Description | Requires |
---|---|---|---|
0 | none | This value (or the absence of this parm from the XML) will cause no change to Bug Report Manager settings; any previously selected setting will be retained. |
MX: 6.3+ Android API: 23+ |
1 | old | Sets the device to use Android bug reporting functionality. |
MX: 6.3+ Android API: 23+ |
2 | new | Sets the device to use Zebra Bug Report Manager for bug reporting and handling. |
MX: 6.3+ Android API: 23+ |
Controls whether a button labeled "Take bug report" is displayed in Android's "Power Off" Menu, which appears after long-pressing the power key on the device. Bug reports generated using this feature are stored and/or sent using the handling preferences specified in Bug Report Profile parameter. Note: The "Take bug report" function also can be switched on and off and silently executed (no user Dialog) from the Settings panel.
Most Power Off Menu functions are controlled by the Power Key Manager.
Parm Name: EnableBRInPwrMenu
Option | Name | Description | Requires |
---|---|---|---|
0 | none | This value (or the absence of this parm from the XML) will cause no change to Bug Report Manager settings; any previously selected setting will be retained. |
MX: 6.3+ Android API: 23+ |
1 | true | Displays the "Take bug report" button on the Power Off Menu. |
MX: 6.3+ Android API: 23+ |
2 | false | Hides the "Take bug report" button from the Power Off Menu. |
MX: 6.3+ Android API: 23+ |
Used to specify whether to store bug reports in the flash memory of a device. If enabled, bug reports are stored in the location specified in the BugReportFilePath parameter. Warning: If this parameter is set to False, bug reports will not be stored in any user-accessible area of the device.
Shown if: BugReportProfile parameter is set to "New"
Parm Name: StorageEnable
Option | Name | Description | Requires |
---|---|---|---|
0 | none | This value (or the absence of this parm from the XML) will cause no change to Bug Report Manager settings; any previously selected setting will be retained. |
MX: 6.3+ Android API: 23+ |
1 | false | Prevents bug reports from being stored on the device. |
MX: 6.3+ Android API: 23+ |
2 | true | Enables bug reports to be stored on the device. |
MX: 6.3+ Android API: 23+ |
Used to specify a storage path for the bug report if device storage is enabled using the StorageEnable parameter. Fixed and removable storage are supported, but specified path must be valid at the time Bug Report Manager is executed. If no path is specified, bug reports are stored in /storage/sdcard0/BugReports/
, a valid path on all Zebra devices.
Parm value input rules:
Shown if: StorageEnable parameter is set to "True"
Parm Name: BugReportFilePath
Requires:
- MX: 6.3+
- Android API: 23+
Controls whether to send bug reports via email. If enabled, bug reports are sent using the email sender account and recipient address specified in the relevant parameters below.
Parm Name: EmailEnable
Option | Name | Description | Requires |
---|---|---|---|
0 | none | This value (or the absence of this parm from the XML) will cause no change to Bug Report Manager settings; any previously selected setting will be retained. |
MX: 6.3+ Android API: 23+ |
1 | false | Prevents Bug Report Manager from sending bug reports via email. |
MX: 6.3+ Android API: 23+ |
2 | true | Sets Bug Report Manager to send bug reports via email. |
MX: 6.3+ Android API: 23+ |
Used to specify the email address from which to send bug reports. Must be the address corresponding to the password specified in the EmailSendersPassword parameter. This would typically be a generic account created specifically for the purpose of sending these reports so as to simplify mass deployment, administration and maintenance tasks.
Parm value input rules:
Shown if: EmailEnable parameter is set to "True"
Parm Name: EmailSendersID
Requires:
- MX: 6.3+
- Android API: 23+
Used to specify the password of the email account from which to send bug reports. Must be the password corresponding to the address specified in the EmailSendersID parameter.
Parm value input rules:
Shown if: EmailEnable parameter is set to "True"
Parm Name: EmailSendersPassword
Requires:
- MX: 6.3+
- Android API: 23+
Used to specify the email server of the sender account specified in the EmailSendersID parameter.
Parm value input rules:
Shown if: EmailEnable parameter is set to "True"
Parm Name: EmailSMTPHost
Requires:
- MX: 6.3+
- Android API: 23+
Used to specify the SMTP port used by the sender's email server specified in the EmailSendersID parameter.
Parm value input rules:
Shown if: EmailEnable parameter is set to "True"
Parm Name: EmailSMTPPort
Requires:
- MX: 6.3+
- Android API: 23+
Used to specify the email address of the intended recipient of bug reports.
Parm value input rules:
Shown if: EmailEnable parameter is set to "True"
Parm Name: EmailSendTo
Requires:
- MX: 6.3+
- Android API: 23+
Controls whether a bug report can be triggered by an intent. Enabled by default.
Parm Name: EnableIntent
Option | Name | Description | Requires |
---|---|---|---|
0 | none | This value (or the absence of this parm from the XML) will cause no change to Bug Report Manager settings; any previously selected setting will be retained. |
MX: 7.0+ Android API: 24+ |
1 | true | Allows an intent to trigger a bug report. |
MX: 7.0+ Android API: 24+ |
2 | false | Prevents intents from triggering bug reports. |
MX: 7.0+ Android API: 24+ |
Controls whether a screenshot is taken and saved along with a bug report. Enabled by default.
Parm Name: EnableScreenshot
Option | Name | Description | Requires |
---|---|---|---|
0 | none | This value (or the absence of this parm from the XML) will cause no change to Bug Report Manager settings; any previously selected setting will be retained. |
MX: 7.0+ Android API: 24+ |
1 | true | Enables screenshots to be taken and saved with each Bug Report. |
MX: 7.0+ Android API: 24+ |
2 | false | Prevents screenshots from being taken with Bug Reports. |
MX: 7.0+ Android API: 24+ |
Controls whether to upload bug reports to the Zebra Cloud. When this feature is enabled, data is stored temporarily in a private area on the device until transport to the Zebra Cloud is complete. At no time is this pre-transport data available to users or third-party apps. Cloud transport is provided on Zebra devices by the Elemez B2M client.
Parm Name: CloudEnable
Option | Name | Description | Requires |
---|---|---|---|
0 | none | This value (or the absence of this parm from the XML) will cause no change to Bug Report Manager settings; any previously selected setting will be retained. |
MX: 6.3+ Android API: 23+ |
1 | false | Prevents bug reports from being uploaded to the Zebra Cloud. |
MX: 6.3+ Android API: 23+ |
2 | true | Causes bug reports to be uploaded to the Zebra Cloud. |
MX: 6.3+ Android API: 23+ |
Used to select the type(s) of field(s) to display in a user Dialog, the "questionnaire" displayed to the user whenever a bug report is generated. Such Dialogs can be useful for gathering information about user activities that might have led to or caused the malfunction being reported. The construction of the Dialog is cumulative; any number of user-entry fields (Text Boxes) and field Labels can be added until all desired questions are asked and all data-gathering needs are addressed. See the Overview section (above) for more information about the way these fields are used and displayed on the device.
Note: To ensure proper operation, each new Dialog must begin with a 'ClearDialog' Action and end with a 'LayoutEnd' Action.
Parm Name: DialogAction
Option | Name | Description | Requires |
---|---|---|---|
0 | none | This value (or the absence of this parm from the XML) will cause no change to the Bug Report Manager settings on the device; any previously selected setting will be retained. |
MX: 6.3+ Android API: 23+ |
1 | ClearDialog | Signals the beginning of a new dialog box layout. |
MX: 6.3+ Android API: 23+ |
2 | AddErrorNameTextBox | Adds a Text Box for providing a bug name, which is appended to the file name of the bug report and becomes name of the file containing user-entered data within the report. |
MX: 6.3+ Android API: 23+ |
3 | AddLabel | Optional static text field used to ask a question or provide instructions for entering data into a Text Box. |
MX: 6.3+ Android API: 23+ |
4 | AddTextBox | Adds a blank Text Box into which the device user enters information about the bug being reported. |
MX: 6.3+ Android API: 23+ |
6 | AddVoiceRecordButton | Displays a button for activating a voice capture function for creating a message to accompany the bug report. |
MX: 6.3+ Android API: 23+ |
7 | LayoutEnd | Signals the end of a dialog box layout. |
MX: 6.3+ Android API: 23+ |
Allows the user to provide a name for the bug being reported. Text entered here is appended to the file name of the bug report (following the date and time) and becomes the name of the file within the report's zip file that contains the user-entered data. Spaces entered into this field are converted to underscore characters; other non-text characters are removed. If left blank by the user, "no_user_entry" will appear.
Parm value input rules:
Shown if: DialogAction parameter is set to "AddErrorNameTextBox (2)"
Parm Name: FileNameTextBox
Requires:
- MX: 6.3+
- Android API: 23+
Used to provide one or more static text fields to ask the device user questions or describe the information to be entered in a blank field. For example, the Label above a text field intended to capture the activity that led to a crash might read "Briefly describe what you were doing immediately before the error occurred."
Parm value input rules:
Shown if: DialogAction parameter is set to "AddLabel (3)"
Parm Name: Label
Requires:
- MX: 6.3+
- Android API: 23+
Used to add one or more blank text fields to capture input from the user that describes the issue being reported. The Text Box allows an administrator to include "hint" text to help guide the user toward the desired input (i.e. "App being used"). Hint text populates the otherwise blank text field and disappears the moment the user begins typing. In the generated bug report, hint text becomes the label for data entered by the user in that field.
Parm value input rules:
Shown if: DialogAction parameter is set to "True"
Parm Name: AddTextBox
Requires:
- MX: 6.3+
- Android API: 23+
Controls whether the Dialog for collecting user-generated bug report information will be dismissed automatically after 60 seconds of inactivity (the default value) or after a custom interval specified using the DialogTimeout parameter. Dialogs dismissed as a result of user inactivity will result in a bug report with "no_user_entry" appended to the file name; any data collected in Text Boxes to that point is retained.
Parm Name: SetDialogTimeout
Option | Name | Description | Requires |
---|---|---|---|
0 | none | This value (or the absence of this parm from the XML) will cause no change to Bug Report Manager settings; any previously selected setting will be retained. |
MX: 6.3+ Android API: 23+ |
1 | true | Enables the Dialog timeout to be set to a custom value. |
MX: 6.3+ Android API: 23+ |
Used to specify the user Dialog timeout interval (in ms), after which the Dialog will be automatically dismissed and the bug report sent as if the user pressed the "Submit" button; any data collected in Text Boxes to that point is retained. Default timeout is 60 seconds (60000 ms), which resets whenever the user interacts with the Dialog.
Parm value input rules:
Shown if: SetDialogTimeout parameter is set to "True"
Parm Name: DialogTimeout
Requires:
- MX: 6.3+
- Android API: 23+
<wap-provisioningdoc>
<characteristic type="BugReportMgr" version="6.3" >
<parm name="BugReportProfile" value="new"/>
<parm name="EnableBRInPwrMenu" value="True"/>
<characteristic type="DialogDetails">
<parm name="DialogAction" value="none"/>
</characteristic>
<characteristic type="StorageDetails">
<parm name="StorageEnable" value="True"/>
<parm name="BugReportFilePath" value="/storage/sdcard0/BugReports/"/>
</characteristic>
<characteristic type="EmailDetails">
<parm name="EmailEnable" value="none"/>
</characteristic>
<characteristic type="CloudDetails">
<parm name="CloudEnable" value="none"/>
</characteristic>
<parm name="SetDialogTimeout" value="none"/>
</characteristic>
</wap-provisioningdoc>
<wap-provisioningdoc>
<characteristic type="BugReportMgr" version="6.3" >
<parm name="BugReportProfile" value="new"/>
<parm name="EnableBRInPwrMenu" value="True"/>
<characteristic type="DialogDetails">
<parm name="DialogAction" value="none"/>
</characteristic>
<characteristic type="StorageDetails">
<parm name="StorageEnable" value="none"/>
</characteristic>
<characteristic type="EmailDetails">
<parm name="EmailEnable" value="True"/>
<parm name="EmailSendTo" value="BugReportRecipient@domain.com"/>
<parm name="EmailSendersID" value="BugReportSenderAccount@domain.com"/>
<parm name="EmailSendersPassword" value="Bug_report_acct_password"/>
<parm name="EmailSMTPHost" value="smtp.domain.com"/>
<parm name="EmailSMTPPort" value="25"/>
</characteristic>
<characteristic type="CloudDetails">
<parm name="CloudEnable" value="none"/>
</characteristic>
<parm name="SetDialogTimeout" value="none"/>
</characteristic>
</wap-provisioningdoc>
<wap-provisioningdoc>
<characteristic type="BugReportMgr" version="6.3" >
<parm name="BugReportProfile" value="new"/>
<parm name="EnableBRInPwrMenu" value="True"/>
<characteristic type="DialogDetails">
<parm name="DialogAction" value="none"/>
</characteristic>
<characteristic type="StorageDetails">
<parm name="StorageEnable" value="none"/>
</characteristic>
<characteristic type="EmailDetails">
<parm name="EmailEnable" value="none"/>
</characteristic>
<characteristic type="CloudDetails">
<parm name="CloudEnable" value="True"/>
</characteristic>
<parm name="SetDialogTimeout" value="none"/>
</characteristic>
</wap-provisioningdoc>
<wap-provisioningdoc>
<characteristic type="BugReportMgr" version="6.3" >
<parm name="BugReportProfile" value="none"/>
<parm name="EnableBRInPwrMenu" value="none"/>
<characteristic type="DialogDetails">
<parm name="DialogAction" value="ClearDialog"/>
</characteristic>
</characteristic>
<characteristic type="BugReportMgr" version="6.3" >
<parm name="BugReportProfile" value="none"/>
<parm name="EnableBRInPwrMenu" value="none"/>
<characteristic type="DialogDetails">
<parm name="DialogAction" value="AddErrorNameTextBox"/>
<parm name="FileNameTextBox" value="Name for this error"/>
</characteristic>
</characteristic>
<characteristic type="BugReportMgr" version="6.3" >
<parm name="BugReportProfile" value="none"/>
<parm name="EnableBRInPwrMenu" value="none"/>
<characteristic type="DialogDetails">
<parm name="DialogAction" value="AddLabel"/>
<parm name="Label" value="Activity just before the error:"/>
</characteristic>
</characteristic>
<characteristic type="BugReportMgr" version="6.3" >
<parm name="BugReportProfile" value="none"/>
<parm name="EnableBRInPwrMenu" value="none"/>
<characteristic type="DialogDetails">
<parm name="DialogAction" value="AddTextBox"/>
<parm name="TextBox" value="Description of the error"/>
</characteristic>
</characteristic>
<characteristic type="BugReportMgr" version="6.3" >
<parm name="BugReportProfile" value="none"/>
<parm name="EnableBRInPwrMenu" value="none"/>
<characteristic type="DialogDetails">
<parm name="DialogAction" value="AddVoiceRecordButton"/>
</characteristic>
</characteristic>
<characteristic type="BugReportMgr" version="6.3" >
<parm name="BugReportProfile" value="none"/>
<parm name="EnableBRInPwrMenu" value="none"/>
<characteristic type="DialogDetails">
<parm name="DialogAction" value="LayoutEnd"/>
</characteristic>
</characteristic>
</wap-provisioningdoc>
<wap-provisioningdoc>
<characteristic type="BugReportMgr" version="6.3" >
<parm name="BugReportProfile" value="new"/>
<parm name="EnableBRInPwrMenu" value="True"/>
<characteristic type="DialogDetails">
<parm name="DialogAction" value="none"/>
</characteristic>
<characteristic type="StorageDetails">
<parm name="StorageEnable" value="True"/>
<parm name="BugReportFilePath" value="/storage/sdcard0/BugReports/"/>
</characteristic>
<characteristic type="EmailDetails">
<parm name="EmailEnable" value="True"/>
<parm name="EmailSendTo" value="BugReportRecipient@domain.com"/>
<parm name="EmailSendersID" value="BugReportSenderAccount@domain.com"/>
<parm name="EmailSendersPassword" value="Bug_report_acct_passw0rd"/>
<parm name="EmailSMTPHost" value="smtp.domain.com"/>
<parm name="EmailSMTPPort" value="25"/>
</characteristic>
<characteristic type="CloudDetails">
<parm name="CloudEnable" value="none"/>
</characteristic>
<parm name="SetDialogTimeout" value="none"/>
</characteristic>
<characteristic type="BugReportMgr" version="6.3" >
<parm name="BugReportProfile" value="none"/>
<parm name="EnableBRInPwrMenu" value="none"/>
<characteristic type="DialogDetails">
<parm name="DialogAction" value="ClearDialog"/>
</characteristic>
</characteristic>
<characteristic type="BugReportMgr" version="6.3" >
<parm name="BugReportProfile" value="none"/>
<parm name="EnableBRInPwrMenu" value="none"/>
<characteristic type="DialogDetails">
<parm name="DialogAction" value="AddErrorNameTextBox"/>
<parm name="FileNameTextBox" value="Name for this error"/>
</characteristic>
</characteristic>
<characteristic type="BugReportMgr" version="6.3" >
<parm name="BugReportProfile" value="none"/>
<parm name="EnableBRInPwrMenu" value="none"/>
<characteristic type="DialogDetails">
<parm name="DialogAction" value="AddTextBox"/>
<parm name="TextBox" value="Description of the error"/>
</characteristic>
</characteristic>
<characteristic type="BugReportMgr" version="6.3" >
<parm name="BugReportProfile" value="none"/>
<parm name="EnableBRInPwrMenu" value="none"/>
<characteristic type="DialogDetails">
<parm name="DialogAction" value="LayoutEnd"/>
</characteristic>
</characteristic>
</wap-provisioningdoc>