set the 'device settings' using a script or configuration file

CT
C Taub
Computer Dimension

We have quite a few DataLogic DL-Axist android devices.

I would like to know, is there an easy way to remotely set the 'device settings', using a script or configuration file?

to remote control into every device and set them up manually will be a time-consuming task 

Here are some examples of settings we would like to set, any help or suggestions in this regard would be helpful and appreciated...

1) Settings> Scanner settings> Notification> Enable display notification = false

2) Settings> Scanner settings> Formating> Lable suffix = [LF]

3)  Settings> Scanner settings> Wedge> Enable keybord wedge = true

4) Settings> Scanner settings> Wedge> keybord wedge only on focus = false

5) Settings> Scanner settings> Symbology settings = Enable pre and check digits for EAN-13, EAN-8, UPC A, UPC E

Edited 7 years ago
Android
ANSWERS
MD
Matt Dermody Diamond Contributor
7 years ago

This is exactly what the Zebra MX layer was built for on Zebra Android devices. Android out of the box is incredibly configurable, but only manually through the Settings app and through some other local UIs. This is manageable for a single end user, but impractical for deploying large amounts of devices from an IT perspective. Google has built out more manageability APIs over time via AFW (now Android Enterprise) and the SOTI MobiControl agent leverages these APIs, in addition to any OEM provided APIs like MX, in order to configure the device. Unless DataLogic has built additional management APIs AND SOTI has also integrated with them, then the extent of what you'll be able to configure will be limited to what dessert flavor of Android your running and therefore what management APIs Google has built for that flavor. More information on Android Enterprise is available here:

https://www.android.com/enterprise/

From what I can tell from briefly looking at the spec sheets for the DL-Axist, it appears to only be running Android Kit Kat. If that is the case you are going to have very few management capabilities provided by Google as Android Enterprise management capabilities only really started showing up in M.

Your best hope at this point is if some of the features you are looking to configure like scanner configurations are managed by a configuration file that can be deployed to a device. You might be able to manually configure a single device, export the scanner configuration to some sort of external file, extract that file, and then deploy it via MobiControl to the remainder of the devices. This also assumes that there is also some sort of Auto-Import mechanism built into the scanner wedge on the device level for processing that file. 

In short, there are incredibly powerful methods for managing granular configurations on Android devices using the combination of Googles base APIs and enhanced OEM provided APIs like Zebra MX and Samsung KNOX, but with an old version of Android (Kit Kat) and a manufacturer like DataLogic you are going to be hard pressed to find the manageability features that you're hoping for. 

KA
Karim A.
7 years ago

Hello, 

There is a set of MobiControl scripts that help you with what you are looking to accomplish. 

    • To identify settings, send script watchsettings on
    • Toggle the settings you want to identify on the device
    • Check the info panel for the results
    • Disable watchsettings when you are done: watchsettings off

(see below screenshot for example)

User-added image

Screenshot of Log info panel showing results from toggling some settings on:

User-added image

Note that there are two types of settings: Secure and System
The System parameter is represented with a -sys. the security parameter is represented with  a -sec.

 Writing the Script
 Here is an example of a log entry:
Custom Log (URI:content://settings/system SETTING: screen_off_timeout VALUE:1800000)
The highlighted parts are what is required to create a script to change the screen timeout.
We will be using the writesecuresetting command.
writesecuresetting –sys screen_off_timeout 1800000
This command will change the screen timeout to 30 minutes. Turn it to 2 minutes with this command:
writesecuresetting –sys screen_off_timeout 120000

Practical Usage Example

With these commands, we could combine policies and rules to disable or enable settings based on specific criteria.
Example: Create an Alert rule on a device and tell it to run this command if the device is low on battery:
Writesecuresetting -sys screen_brightness 50
This will reduce the screen brightness on the device and extend the battery’s life.

NOTE: This is not guaranteed to work on all devices. 

CT
C Taub
7 years ago

thank you so much for your reply, this was really helpful information...

I followed the above steps and I was able to see some setting changes in the logs, but for some reason when I toggled the specific scanner settings I mentioned, it did not show up in the logs, I believe this has to do because they are unique data logic settings.

 any further advice, or a plan-B?    

KA
Karim A.
7 years ago
TB
Tamas Biro
7 years ago

Hello,

Can you tell me the sendintent version of the above mentioned writesecuresetting –sys screen_off_timeout 1800000 command?

BS
Bo S. Nielsen
6 years ago

It should be support on Android Enterprise as of agent version 13.6.0 Build 1844 (March 12, 2019) according to the release note:

MC-70172 Added support for writesecuresetting -sys script to change system settings on Android enterprise devices running Android 9.0 or later

 https://docs.soti.net/soti-mobicontrol/android-agent/release-notes/v136/android-enterprise-agent-maintenance-releases/

I tested it on both OnePlus 5T running Android 8 and 9 but it fails (Android debug log version 9)


pool-8-thread-1|D|AP|[LegacyScriptExecutor][execute]script command: writesecuresetting [–sys, screen_off_timeout, 120000], result: ScriptResult{description='FAILED', resultType=FAILED}|

Also I dont understand why it would require Android version 9 as it uses API level 1 

android.provider.Settings.System.SCREEN_OFF_TIMEOUT

Android permission (Protection level: signature / privileged)

android.permission.WRITE_SETTINGS