パッケージ、リポジトリ、アプリカテゴリを検索

パッケージ詳細v0.6.0

android_id

Android ID を取得するための Flutter プラグイン。Android専用。

Android
30日間ダウンロード
29.8万
いいね数
154
Pub ポイント
160

パッケージをインストール

flutter pub add android_id

パッケージ概要

公開情報に基づく選定ガイドです。参考としてご利用ください。

android_id パッケージは、各 Android デバイスに割り当てられる一意の識別子である Android ID へのアクセスを提供する Flutter プラグインです。Android 専用に設計されており、デバイスの追跡、ライセンス管理、分析などの目的でこの ID を取得できます。軽量で、Android プラットフォーム向けの Flutter アプリにスムーズに統合されます。iOS や他のプラットフォームはサポートしていません。ソースコードは、透明性と貢献を促進するために GitHub で公開されています。

用途

  • デバイスの識別
  • アプリライセンス
  • アナリティクスのトラッキング
  • ユーザー セッション管理
  • デバッグとテスト

主な機能

  • Android ID を取得するためのシンプルな API
  • Android専用の互換性
  • オープンソース、パブリックリポジトリ
  • 最小限の依存関係
  • セキュアなIDの取得

適している対象

  • Android専用アプリ
  • デバイス固有の機能
  • ライセンスシステム
  • 分析統合

注意事項

  • iOS またはその他のプラットフォームでは利用できません
  • デバイスをリセットすると、Android IDが変更される可能性があります
  • AndroidManifest.xml に適切な権限が必要です
  • プライバシーに配慮したアプリケーションにおける限定的な使用

元の README

関連するソースリポジトリの README 原文のスナップショットです。最新の内容はリポジトリをご覧ください。

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.

Android build compatibility

android_id supports Android Gradle Plugin 9 and Flutter's built-in Kotlin mode. It also keeps working with AGP 8 and Flutter's temporary android.builtInKotlin=false opt-out.

The plugin no longer provides its own Android Gradle Plugin or Kotlin Gradle Plugin classpaths. It only applies the Kotlin Gradle Plugin when the host build still needs it. This fixes errors such as:

The 'org.jetbrains.kotlin.android' plugin is no longer required for Kotlin
support since AGP 9.0.

Most Flutter apps should not need app-code changes.

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)

カテゴリー

ソースリポジトリ

このパッケージを使用しているプロジェクト