trackingAuthorizationStatus property

Future<TrackingStatus> trackingAuthorizationStatus

Get tracking authorization status without showing a dialog.

Consider using this value if you want to show a custom tracking explainer dialog before the system dialog.

// If the system can show an authorization request dialog
if (await AppTrackingTransparency.trackingAuthorizationStatus ==
    TrackingStatus.notDetermined) {
  // Show a custom explainer dialog before the system dialog
  await showCustomTrackingDialog(context);
  // Wait for dialog popping animation
  await Future.delayed(const Duration(milliseconds: 200));
  // Request system's tracking authorization dialog
  await AppTrackingTransparency.requestTrackingAuthorization();
}

returns TrackingStatus.notSupported on Android

Implementation

static Future<TrackingStatus> get trackingAuthorizationStatus async {
  if (defaultTargetPlatform == TargetPlatform.iOS) {
    final int status =
        (await _channel.invokeMethod<int>('getTrackingAuthorizationStatus'))!;
    return TrackingStatus.values[status];
  }
  return TrackingStatus.notSupported;
}