The WizyEMM Companion App is an essential tool for administrators, providing additional features and functionality for managing your Android devices beyond standard Android Enterprise capabilities. Many of these features can be remotely configured and deployed through Managed Configurations directly from your WizyEMM console. This article will guide you through locating and applying these configurations.
What are Managed Configurations?
Managed Configurations are a standard Android Enterprise feature that allows administrators to remotely pre-configure, manage, and update settings for applications on enrolled devices. Instead of manually configuring each app on each device, you can push settings from your WizyEMM console, ensuring consistency and efficiency.
For the WizyEMM Companion App, Managed Configurations enable you to control various aspects of its behavior and unlock specific functionalities like:
- Foreground Service Notification
- Battery Configuration
- Content Provider Configuration
What can I configure in the Companion App managed configuration?
- Foreground Service Notification
- Remote Control
- Outgoing Phone Call Restrictions
- Geolocation
- Samsung Configuration
- Usage
- Device Status Update
- Pradeo Configuration
- Battery Configuration
- Content Provider Configuration
- The content provider fetcher expects data in the format (baz can be omitted):
{"foo":"string", "baz":15}
- You can download the Content Provider Fetcher here.
- Package name act as a key, it is a string field
- Data is the data that will be exposed on the called key, it is a string field
- Fetching App Configuration
- Manifest
- Add the following into your manifest to allow it to call the Companion App:
<queries> <!-- Allow querying your provider's app by package name --> <package android:name="app.wizyemm.eu.companion" /> </queries>
- Add the following into your manifest to allow it to call the Companion App:
- Fetch Data
You need to call this url "content://app.wizyemm.eu.companion.provider/config/${key}" with Android's contentResolver. The key should be the value passed in the Package name field from earlier.
Here is a sample code that fetches data for a key set as test and then retrieves the value as a string and parses it as an object using Gson.
data class CustomerData(var foo: String, var baz: Int = 0) fun fetchProvider(context: Context): CustomData? { val key = "test" val uri = Uri.parse("content://app.wizyemm.eu.companion.provider/config/${key}") val cursor: Cursor? = context.contentResolver.query(uri, null, null, null, null) if (cursor != null && cursor.moveToFirst()) { val value = cursor.getString(cursor.getColumnIndexOrThrow("value")) val data = Gson().fromJson(value, CustomData::class.java) Log.d("Content", "Value: $value / Parsed: $data") cursor.close() return data } return CustomData("",0) }
- Manifest
- The content provider fetcher expects data in the format (baz can be omitted):