Open abcjjy opened 10 months ago
if you have UniTask in your project, this is my workaround, but I agree with you, it should be noticed in Doc
public UniTask AppTrackingTransparencyAsync()
{
var status = ATTrackingStatusBinding.GetAuthorizationTrackingStatus();
Version currentVersion = new Version(Device.systemVersion);
Version ios14 = new Version("14.5");
Debug.Log($"GetAuthorizationTrackingStatus={status}");
if (status == ATTrackingStatusBinding.AuthorizationTrackingStatus.NOT_DETERMINED && currentVersion >= ios14)
{
var utcs = new UniTaskCompletionSource();
ATTrackingStatusBinding.RequestAuthorizationTracking(async (int status) =>
{
// 2:not allow 3:allow
Debug.Log("RequestAuthorizationTracking: " + status);
// callback is in another thread, switch back to Unity main thread
await UniTask.SwitchToMainThread();
utcs.TrySetResult();
});
return utcs.Task;
}
return UniTask.CompletedTask;
}
This behavior is error prone. Please make it in main thread or give a warning in the doc.