Некоторое время я работал над отсутствием возможности ограничить использование сети Crashlytics при определенных условиях. Например - в роуминге, на дозированных сетях и т.д.
Согласно документации SDK, только два варианта, которые я нашел, обратились к этому так:
-
"Отключить" во время выполнения просто не инициализировать Crashlytics
-
встроенного диалога согласия пользователя перед отправкой отчета о сбое
Этот API очень ограничен, потому что:
-
Не инициализировать Crashlytics не только предотвращает доступ к сети, но и предотвращает любые шансы Crashlytics будет локально сохранять отчет о сбое, чтобы в итоге событие было отправлено. Не говоря уже о том, что нет хорошего способа отказаться от времени выполнения, помимо жестокого обращения с Thread.setUncaughtExceptionHandler
-
диалог согласия не имеет никакого смысла для пользователя, если авария происходит в фоновом режиме.
Мой вопрос в основном: я что-то упускаю? Есть ли способ ограничить доступ к сети Crashlytics?
Моя мотивация связана с необходимостью предотвращения ситуации, когда мое приложение использует пропускную способность сети, потенциально может стоить деньги пользователю при определенных условиях, хотя включены настройки "сотовая сеть" или "использование данных через роуминг".