android_id 0.5.1 copy "android_id: ^0.5.1" to clipboard
android_id: ^0.5.1 copied to clipboard

PlatformAndroid

A Flutter plugin for getting the Android ID. Only for Android.

android_id #

Flutter Community: android_id

Pub Version

A Flutter plugin for retrieving the Android ID.

Getting started #

  • Add plugin to pubspec.yaml
  • Use it in your code (see examples of all methods below)

Usage #

const _androidIdPlugin = AndroidId();

final String? androidId = await _androidIdPlugin.getId();

Optional defensive handling #

Treat registration/runtime failures as null by wrapping the call in a try/catch:

const _androidIdPlugin = AndroidId();

String? androidId;
try {
  androidId = await _androidIdPlugin.getId();
} on MissingPluginException {
  print('Failed to get Android ID: MissingPluginException');
  androidId = null;
} on PlatformException catch (e) {
  print('Failed to get Android ID: ${e.message}');
  androidId = null;
}

Note: getId() returns null on non-Android platforms (iOS, Web, etc.). On Android, it throws MissingPluginException if the plugin is not properly registered (see more below).

Important #

Please note that on Android 8 and above, the Android ID is not unique per device, but also per signing key the app was built with:

On Android 8.0 (API level 26) and higher versions of the platform, a 64-bit number (expressed as a hexadecimal string), unique to each combination of app-signing key, user, and device.

The value may change if a factory reset is performed on the device or if an APK signing key changes.

Android API reference

Stack Overflow explanation

Google Play #

Before using this plugin in your app, make sure to follow Google Play guidelines. For example here:

Persistent identifiers, including Android ID

Use for non-advertising purposes
You can use persistent identifiers as long as you have a privacy policy and handle the data in accordance with the Developer Distribution Agreement and all applicable privacy laws in the areas where you make your app available.

Troubleshooting #

If you're experiencing MissingPluginException, try these steps in order:

  1. Full Rebuild: Stop the app completely and rebuild from scratch

    flutter clean
    flutter pub get
    flutter run
    
  2. Check Flutter Version: Ensure you're using Flutter 3.10.0 or higher

    flutter --version
    
  3. Verify Android Embedding: Check android/app/src/main/.../MainActivity.kt (or .java)

    • Should import: io.flutter.embedding.android.FlutterActivity
    • Should NOT import: io.flutter.app.FlutterActivity (legacy v1 embedding)

    If using v1 embedding, migrate to v2 following this guide

  4. Check Hot Reload: Plugin registration happens during cold start. If using hot reload/restart:

    • Stop the app completely
    • Run flutter run again (not hot restart)
  5. Invalidate Caches: For Android Studio/IntelliJ:

    • File → Invalidate Caches → Invalidate and Restart
  6. Test on Real Device: If on emulator, try on a physical Android device

If none of these work:

  • Search existing GitHub issues for a similar report and add your details there, or open a new issue if you can't find one.
  • Include the following information:
    • Flutter version (flutter --version)
    • Output of flutter doctor -v
    • Your pubspec.yaml dependencies
    • Full error stack trace
    • Whether it happens in a fresh project (flutter create test_app)
139
likes
160
points
285k
downloads

Publisher

verified publisherachim.io

Weekly Downloads

A Flutter plugin for getting the Android ID. Only for Android.

Repository (GitHub)
View/report issues

Topics

#androidid #device #identifier #android #native

Documentation

API reference

License

BSD-3-Clause (license)

Dependencies

flutter

More

Packages that depend on android_id

Packages that implement android_id