device_uid

A Flutter plugin to get a unique device ID using native methods on Android and iOS.

Features

  • Retrieves device unique ID without third-party dependencies.
  • Works on both Android and iOS.
  • Supports Advertising ID (Ad ID) for tracking purposes.
  • Includes a generated UUID as a fallback.

Installation

Add this to your pubspec.yaml:

dependencies:
  device_uid: ^latest

Usage

Get Device Unique ID

Returns:

  • Android: ANDROID_ID
  • iOS: IDFV (Identifier for Vendor)
import 'package:device_uid/device_uid.dart';

void main() async {
  String deviceId = await DeviceUid.getDeviceId() ?? 'N/A';
  debugPrint("Device ID: $deviceId");
}

Get Advertising ID (Ad ID)

Returns:

  • Android: Advertising ID (requires Google Play Services)
  • iOS: Advertising ID (requires tracking permission on iOS 14+)
import 'package:device_uid/device_uid.dart';

void main() async {
  String adId = await DeviceUid.getAdId() ?? 'N/A';
  debugPrint("Ad ID: $adId");
}

🔹 iOS Tracking Permission Requirement (iOS 14+): If running on iOS 14+, ensure you request App Tracking Transparency (ATT) permission before retrieving Ad ID.

Generate Random UUID (Fallback)

  • Returns a randomly generated UUID that is not persistent.
import 'package:device_uid/device_uid.dart';

void main() async {
  String uuid = await DeviceUid.getUUID() ?? 'N/A';
  debugPrint("Generated UUID: $uuid");
}
Function Android iOS Persistent? Notes
getDeviceId() ANDROID_ID IDFV ✅ Yes Unique per device (or vendor on iOS).
getAdId() Advertising ID Advertising ID ✅ Yes Requires Google Play Services (Android) / ATT permission (iOS).
getUUID() Random UUID Random UUID ❌ No Regenerates each time it's called.

☕ Buy Me a Coffee

If you find this package useful, consider supporting me:

  • Binance Pay ID: 523797881

Thank you for your support! ❤️