52 lines
1.3 KiB
Dart
52 lines
1.3 KiB
Dart
// Author: fengshengxiong
|
|
// Date: 2024/6/26
|
|
// Description: 应用程序跟踪透明度管理器
|
|
|
|
import 'dart:async';
|
|
import 'dart:io';
|
|
|
|
import 'package:app_tracking_transparency/app_tracking_transparency.dart';
|
|
import 'package:wallpaperx/common/utils/log_print.dart';
|
|
|
|
class AppTrackingTransparencyManager {
|
|
AppTrackingTransparencyManager._();
|
|
|
|
static final AppTrackingTransparencyManager _instance = AppTrackingTransparencyManager._();
|
|
|
|
factory AppTrackingTransparencyManager() {
|
|
return _instance;
|
|
}
|
|
|
|
Timer? _timer;
|
|
|
|
/// 请求跟踪授权
|
|
Future<void> requestATT() async {
|
|
if (Platform.isIOS) {
|
|
final TrackingStatus status = await AppTrackingTransparency.trackingAuthorizationStatus;
|
|
if (status == TrackingStatus.notDetermined) {
|
|
if (_timer != null && _timer!.isActive) {
|
|
final TrackingStatus status = await AppTrackingTransparency.requestTrackingAuthorization();
|
|
LogPrint.d('跟踪授权状态: $status');
|
|
} else {
|
|
_startTimer();
|
|
}
|
|
} else {
|
|
_stopTimer();
|
|
}
|
|
}
|
|
}
|
|
|
|
/// 开始定时器
|
|
void _startTimer() {
|
|
_timer = Timer.periodic(const Duration(seconds: 3), (Timer t) {
|
|
requestATT();
|
|
});
|
|
}
|
|
|
|
/// 停止定时器
|
|
void _stopTimer() {
|
|
_timer?.cancel();
|
|
_timer = null;
|
|
}
|
|
}
|