Skip to content

Commit fb1c8dd

Browse files
oschwaldclaude
andcommitted
docs: Update README with correct API usage and comprehensive data list
Fix documentation issues: - Change SdkConfig.Builder to use Int accountID instead of String API key - Fix deviceData property access to use nested structure (deviceData.build.*) - Update configuration options table with correct parameter names/types Expand "Collected Data" section to document all signals: - Device identifiers (storedID, deviceIDs) - Device info (build, display, hardware) - Subsystems (GPU, audio, sensors, cameras, codecs) - System state (features, network, installation, settings, behavior) - Additional signals (telephony, fonts, locale/timezone, WebView UA) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
1 parent 79c3c3b commit fb1c8dd

File tree

1 file changed

+40
-20
lines changed

1 file changed

+40
-20
lines changed

README.md

Lines changed: 40 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ class MyApplication : Application() {
5353
override fun onCreate() {
5454
super.onCreate()
5555

56-
val config = SdkConfig.Builder("your-api-key")
56+
val config = SdkConfig.Builder(123456) // Your MaxMind account ID
5757
.enableLogging(BuildConfig.DEBUG)
5858
.build()
5959

@@ -109,27 +109,27 @@ Collect device data without sending:
109109

110110
```kotlin
111111
val deviceData = DeviceTracker.getInstance().collectDeviceData()
112-
println("Device: ${deviceData.manufacturer} ${deviceData.model}")
112+
println("Device: ${deviceData.build.manufacturer} ${deviceData.build.model}")
113113
```
114114

115115
## Configuration Options
116116

117117
### SdkConfig.Builder
118118

119119
```kotlin
120-
val config = SdkConfig.Builder("your-api-key")
120+
val config = SdkConfig.Builder(123456) // Your MaxMind account ID
121121
.serverUrl("https://custom-server.com/api") // Optional: Custom server URL
122122
.enableLogging(true) // Optional: Enable debug logging
123123
.collectionInterval(60_000) // Optional: Auto-collect every 60 seconds
124124
.build()
125125
```
126126

127-
| Option | Type | Default | Description |
128-
|--------|------|---------|-------------|
129-
| `apiKey` | String | *required* | Your MaxMind API key |
130-
| `serverUrl` | String | `https://device-api.maxmind.com/v1` | MaxMind API endpoint |
131-
| `enableLogging` | Boolean | `false` | Enable debug logging |
132-
| `collectionIntervalMs` | Long | `0` | Auto-collection interval (0 = disabled) |
127+
| Builder Method | Type | Default | Description |
128+
|----------------|------|---------|-------------|
129+
| `Builder(accountID)` | Int | *required* | Your MaxMind account ID |
130+
| `.serverUrl(url)` | String | Default servers | Custom server URL |
131+
| `.enableLogging(enabled)` | Boolean | `false` | Enable debug logging |
132+
| `.collectionInterval(ms)` | Long | `0` | Auto-collection interval in milliseconds (0 = disabled) |
133133

134134
## Permissions
135135

@@ -142,17 +142,37 @@ The SDK requires the following permissions (automatically included):
142142

143143
## Collected Data
144144

145-
The SDK collects the following device information:
146-
147-
- **Device ID**: Optional unique identifier
148-
- **Manufacturer**: Device manufacturer (e.g., "Samsung", "Google")
149-
- **Model**: Device model name
150-
- **Brand**: Device brand name
151-
- **OS Version**: Android version
152-
- **SDK Version**: Android SDK/API level
153-
- **Screen Resolution**: Display resolution
154-
- **Screen Density**: Display density
155-
- **Timestamp**: Collection timestamp
145+
The SDK collects comprehensive device fingerprinting data:
146+
147+
### Device Identifiers
148+
- **Stored ID**: Server-generated persistent ID (similar to browser cookies)
149+
- **Device IDs**: MediaDRM ID, Android ID (where available)
150+
151+
### Device Info
152+
- **Build**: Manufacturer, model, brand, device, product, board, hardware, OS version, SDK version, security patch, supported ABIs
153+
- **Display**: Resolution, density, refresh rate, HDR capabilities
154+
- **Hardware**: CPU cores, total memory, total storage
155+
156+
### Subsystems
157+
- **GPU**: Renderer, vendor, GL version, extensions
158+
- **Audio**: Output sample rate, frames per buffer
159+
- **Sensors**: Full list with type, vendor, max range
160+
- **Cameras**: IDs, facing, physical sensor size, supported resolutions, focal lengths
161+
- **Codecs**: Available audio/video codecs with details
162+
163+
### System State
164+
- **System Features**: All available `PackageManager.FEATURE_*` values
165+
- **Network**: Connection type, metered status, WiFi info
166+
- **Installation**: First install time, last update, installer package, version code/name
167+
- **Settings**: Screen timeout, developer settings, animator scale, boot count
168+
- **Behavior**: Enabled keyboards, accessibility services
169+
170+
### Additional Signals
171+
- **Telephony**: Network operator, SIM state, phone type
172+
- **Fonts**: Available system fonts (helps identify device/ROM)
173+
- **Locale/Timezone**: Language, country, timezone with DST offset
174+
- **WebView User Agent**: Default WebView user agent string
175+
- **Timestamp**: Collection time
156176

157177
All data collection respects user privacy and Android security policies.
158178

0 commit comments

Comments
 (0)