DefaultDeviceCollector

Creates a default configuration of device collectors for gathering comprehensive device profile information.

This function returns a configuration lambda that sets up a complete suite of device collectors used by the Ping Identity SDK for device fingerprinting and profiling. The default configuration provides a comprehensive device profile by collecting information across multiple categories.

Included Collectors:

System & Platform Information:

  • PlatformCollector: Gathers Android OS version, device model, manufacturer, locale, timezone, and security information including jailbreak/root detection scores

Hardware Specifications:

  • HardwareCollector: Collects device hardware details including CPU cores, memory (RAM), storage capacity, display dimensions/orientation, and camera information

Return

A lambda function that takes a MutableList of DeviceCollector and adds the default collectors:

Connectivity & Network:

Telephony & Carrier:

  • TelephonyCollector: Gathers carrier information, network country ISO, and telephony capabilities

Location Services:

  • LocationCollector: Collects GPS coordinates and location data (requires appropriate permissions)

Usage Examples:

Basic usage with default collectors:

val collectors = mutableListOf<DeviceCollector<*>>()
collectors.DefaultDeviceCollector()
val deviceProfile = collectors.collect()

Combining with custom collectors:

val collectors = mutableListOf<DeviceCollector<*>>()
collectors.DefaultDeviceCollector()
collectors.add(CustomCollector())
val deviceProfile = collectors.collect()

Privacy Considerations:

  • Location data collection requires user permissions and should comply with privacy policies

  • Some hardware information may be considered sensitive for device fingerprinting

  • Telephony information may include carrier-specific details

  • Browser data includes user agent strings that may contain identifying information

Performance Notes:

  • Collectors are designed to be lightweight and non-blocking

  • Hardware collectors may perform system calls to gather specifications

  • Location collection is the most resource-intensive and may require user interaction

  • Results are typically cached to avoid repeated system queries

A configuration lambda that accepts a MutableList of DeviceCollector and populates it with the complete set of default collectors for comprehensive device profiling

See also