user_status_collector 0.1.1
user_status_collector: ^0.1.1 copied to clipboard
Collects device, network, battery, and foreground location status for upload.
user_status_collector #
Collects device, network, battery, and foreground location status from a Flutter app and serializes it into an upload-ready JSON payload.
The plugin does not upload data. Keep upload, authentication, retry, and endpoint handling in your app layer.
Features #
- Device: platform, OS version, model, manufacturer or brand, device name, physical-device flag.
- Network: connectivity types and Wi-Fi name when available.
- Battery: level, charging state, battery saver state.
- Location: foreground latitude, longitude, accuracy, timestamp, province, city, address, and whether the result comes from current or last-known position.
- Graceful fallback: failed readers return status values such as
unavailable,permission_denied, orservice_disabled, and location falls back tolastKnownPositionwhen a fresh fix is unavailable.
Usage #
import 'package:user_status_collector/user_status_collector.dart';
final collector = UserStatusCollector();
final snapshot = await collector.collect(trigger: UserStatusTrigger.login);
await upload(snapshot.toJson());
Permissions #
This plugin uses foreground location and Wi-Fi related APIs through Flutter plugins. Your host app is responsible for declaring platform permissions and user-facing permission descriptions.
For Android, add the permissions needed by your app, for example:
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
For iOS, add the location usage descriptions your app needs, for example:
<key>NSLocationWhenInUseUsageDescription</key>
<string>This app uses your location to include foreground location status in diagnostic uploads.</string>
Local development #
fvm flutter test
fvm dart format --page-width 120 lib test example/lib example/test example/integration_test
Before publishing, replace the package metadata such as repository URL and license ownership.