Другие API Unity

Это важно

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

Настройте уровень журнала

Вы можете контролировать количество сообщений журнала, отображаемых в Центре приложений в консоли. Используйте LogLevelAPI для включения дополнительного логирования во время отладки. По умолчанию оно устанавливается ASSERT для сред App Store и 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
}