Другие API Unity

Важно!

Прекращение поддержки Центра приложений Visual Studio запланировано на 31 марта 2025 г. Хотя вы можете продолжать использовать Центр приложений Visual Studio, пока он не будет полностью выведен из эксплуатации, существует несколько рекомендуемых вариантов, на которые вы можете рассмотреть возможность миграции.

Узнайте больше о сроках поддержки и альтернативных вариантах.

Настройка уровня журнала

Вы можете управлять количеством сообщений журнала, отображаемых в Центре приложений в консоли. LogLevelИспользуйте -API, чтобы включить дополнительное ведение журнала во время отладки. По умолчанию для App Store сред задано значение ASSERT и WARN в противном случае.

Чтобы получить как можно больше сообщений журнала, включите LogLevel.Verbose его в параметрах Центра приложений или в коде.

AppCenter.LogLevel = LogLevel.Verbose;

Определение установок

Пакет SDK центра приложений создает UUID для каждого устройства после установки приложения. Этот идентификатор остается неизменным для устройства при обновлении приложения. Новый идентификатор создается только при переустановке приложения. Следующий API полезен для отладки.

System.Guid? installId = await AppCenter.GetInstallIdAsync();

Идентификация пользователей

Пакет SDK центра приложений поддерживает настройку идентификатора пользователя , который используется для дополнения отчетов о сбоях. Чтобы использовать эту возможность, выполните следующие действия.

  1. Настройте пакет SDK центра приложений, как описано в руководстве по началу работы с пакетом SDK центра приложений.
  2. userID Задайте в пакете SDK с помощью следующего кода:
AppCenter.SetUserId("your-user-id");

Задав идентификатор пользователя, вы можете использовать функцию поиска в Центре приложений для поиска конкретных отчетов о сбоях для идентификатора. Дополнительные сведения см. в документации по поиску в Центре приложений.

Примечание

Значение идентификатора пользователя ограничено 256 символами. Он будет отображаться вместе с отчетами о сбоях, но не будет использоваться для агрегирования или количества затронутых пользователей. Если вы задали идентификатор пользователя несколько раз, будет использоваться только последний идентификатор пользователя. Необходимо самостоятельно задавать идентификатор пользователя перед каждым запуском приложения, так как это значение не хранится в пакете SDK между запусками.

Отключение всех служб во время выполнения

Если вы хотите отключить все службы Центра приложений Enabled одновременно, используйте свойство . Если он отключен, пакет SDK не будет пересылать какие-либо сведения в Центр приложений.

AppCenter.SetEnabledAsync(false);

Чтобы снова включить все службы, используйте тот же API, но передайте true в качестве параметра.

AppCenter.SetEnabledAsync(true);

Вам не нужно ожидать этого вызова, чтобы обеспечить согласованность других вызовов API (например, IsEnabledAsync).

Состояние сохраняется в хранилище устройства при запуске приложений.

Изменение состояния службы в среде выполнения

Вы можете включить или отключить службу в среде выполнения с помощью следующего кода:

Analytics.SetEnabledAsync(true);

Запретить сетевые запросы

В пакете SDK центра приложений сетевые запросы разрешены по умолчанию. Если вы хотите отправлять данные, собираемые пакетом SDK центра приложений пользователем, вы можете запретить автоматическую отправку данных.

AppCenter.IsNetworkRequestsAllowed = false;

В этом случае пакет SDK центра приложений продолжает собирать данные, но они будут отправляться только в том случае, если будут разрешены сетевые запросы.

AppCenter.IsNetworkRequestsAllowed = true;

Примечание

Это значение сохраняется между запусками.

В любое время можно проверка, разрешена ли отправка данных в пакете SDK центра приложений.

AppCenter.IsNetworkRequestsAllowed;

Примечание

Значение, сохраненное ранее в , SharedPreferences игнорируется, пока не AppCenter будет запущено на платформе Android. Он вернет последнее заданное значение с помощью AppCenter.IsNetworkRequestsAllowed = allowed или true , если значение не было изменено до запуска AppCenter.

Проверьте, включен ли Центр приложений

Вы также можете проверка, включен ли Центр приложений.

bool enabled = await AppCenter.IsEnabledAsync();

Проверка версии пакета SDK центра приложений во время выполнения

Вы можете получить версию пакета SDK центра приложений, который вы используете в настоящее время.

AppCenter.SdkVersion;

Задержка запуска Центра приложений

В таких случаях может потребоваться отложить запуск Центра приложений до запуска AppCenterBehavior . Например, если вы хотите запросить согласие пользователя перед запуском каких-либо служб Центра приложений.
Для этого добавьте AppCenterBehaviorAdvanced в игровой объект и проверка флажки Запустить собственный пакет SDK из приложения iOS/Android. Пакет SDK запускается в методе StartAppCenterBehavior и позволяет добавить пользовательское диалоговое окно или другую логику.

Совет

Если вы создаете параметры во время сборки, еще один способ — перейти в раздел Параметры> проигрывателяДругие параметры Скрипты>Определить символы и вставить APPCENTER_DONT_USE_NATIVE_STARTER.

Асинхронные API в пакете SDK для Unity

Асинхронные API возвращают AppCenterTask объект , а не возвращают результат напрямую, и возвращаются немедленно, а не дожидаются завершения действия.

Существует три способа взаимодействия с этими методами.

Метод 1. ContinueWith

Чтобы выполнить действие после AppCenterTaskзавершения действия, добавьте обратный вызов с помощью ContinueWith метода .

Пример

AppCenter.IsEnabledAsync().ContinueWith(task =>
{
    // Do something with task.Result
});

В ситуациях, когда метод имеет фактическое возвращаемое значение, он будет возвращать AppCenterTask<{Return Type}> (как показано в примере выше). В таких ситуациях параметр задачи в обратном вызове будет иметь Result свойство, к которому можно получить доступ.

Метод 2. Встроенные функции языка

Если вы пишете код с доступом к .NET 4.6 или более поздней версии, его AppCenterTask можно awaitиспользовать в асинхронном контексте.

Пример

bool isEnabled = await AppCenter.IsEnabledAsync();

Метод 3. Сопрограммы

AppCenterTasks также подходят для использования в сопрограммах.

Пример

void SomeMethod()
{
    StartCoroutine(IsEnabledCoroutine());
}

IEnumerator IsEnabledCoroutine()
{
    var isEnabled = AppCenter.IsEnabledAsync();
    yield return isEnabled;

    // do something with the isEnabled
}