skip to Main Content

I want to get a device id or any unique number that can not be changed when someone uninstalls the app. This device is for both android and iOS and is in the flutter framework. I want this to manage my device management.

Thanks for the help.

I tried some of the most commonly used packages in flutter like device_info_plus and flutter_udid but IDs generated from these changes every day.

2

Answers


  1. Did you tried platform_device_id

    This package can help you to get deviceId in android, iOS, windows, macOS and even in web and linux.

    After importing the package you need to use following code

     try {
          deviceId = await PlatformDeviceId.getDeviceId;
        } on PlatformException {
          deviceId = 'Failed to get deviceId.';
        }
    
    Login or Signup to reply.
  2. You can use @Rohan’s answer also. platform_device_id package. Read more


    There is guide for device_info_plus package Read more

    • add package to your flutter project.

    • Create a method like this:

      Future<String> getUniqueDeviceId() async {
      String uniqueDeviceId = '';
      
      var deviceInfo = DeviceInfoPlugin();
      
      if (Platform.isIOS) { 
       var iosDeviceInfo = await deviceInfo.iosInfo;
       uniqueDeviceId = 
       '${iosDeviceInfo.name}:${iosDeviceInfo.identifierForVendor}'; // 
      unique ID on iOS
      } else if(Platform.isAndroid) {
        var androidDeviceInfo = await deviceInfo.androidInfo;
        uniqueDeviceId = 
        '${androidDeviceInfo.name}:${androidDeviceInfo.id}' ; // unique ID 
        on Android
      }
      
      return uniqueDeviceId;
      
      }
      
    • use it like this:

      String deviceId = await getUniqueDeviceId();
      

    Note (updateded):

    Don’t use androidDeviceInfo.androidId. This would change when your mac address changes. Mobile devices above Android OS 10/11 will generate a randomized MAC. This feature is enabled by default unless disabled manually. This would cause the androidId to change when switiching networks. You can confirm this by yourself by changing androidDeviceInfo.id to androidDeviceInfo.androidId above.

    (Got details from @Ariel)

    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search