platform_ios_info.dart 1.1 KB

1234567891011121314151617181920212223242526272829303132
  1. import 'dart:io';
  2. import 'package:app_tracking_transparency/app_tracking_transparency.dart';
  3. import 'package:device_info_plus/device_info_plus.dart';
  4. import 'atmob_platform_info.dart';
  5. class PlatformIosInfo {
  6. static Future<void> init() async {
  7. if (Platform.isIOS) {
  8. DeviceInfoPlugin deviceInfoPlugin = DeviceInfoPlugin();
  9. IosDeviceInfo iosInfo = await deviceInfoPlugin.iosInfo;
  10. atmobPlatformInfo
  11. .setModel(iosInfo.model)
  12. .setIdfv(iosInfo.identifierForVendor);
  13. final TrackingStatus status =
  14. await AppTrackingTransparency.trackingAuthorizationStatus;
  15. if (status == TrackingStatus.notDetermined) {
  16. final TrackingStatus newStatus =
  17. await AppTrackingTransparency.requestTrackingAuthorization();
  18. if (newStatus == TrackingStatus.authorized) {
  19. atmobPlatformInfo.setIdfa(
  20. await AppTrackingTransparency.getAdvertisingIdentifier());
  21. }
  22. } else if (status == TrackingStatus.authorized) {
  23. atmobPlatformInfo
  24. .setIdfa(await AppTrackingTransparency.getAdvertisingIdentifier());
  25. }
  26. }
  27. }
  28. }