【问题标题】:How to turn off TwilightManager logging如何关闭 TwilightManager 日志记录
【发布时间】:2019-03-21 22:11:59
【问题描述】:

我正在开发一个不需要位置服务的 Android 应用,我不想添加该权限。

在我的物理设备(带有 Android 8.1.0 的 Moto G5 Plus)上进行测试时,我在 Logcat 中看到以下重复令人作呕的广告:

TwilightManager:无法获取最后一个已知位置。这可能是因为该应用程序没有任何位置权限。回退到硬编码的日出/日落值。

我不想要它,我不需要它。我不知道如何摆脱它。

android.support.v7.app.TwilightManager.isNight() 显然被某些东西调用了,但我不知道如何告诉它不要继续调用它。

我尝试了几种获取系统服务之类的东西,但都没有找到秘密握手。此外,TwilightManager 是私有的。

getBlahBlahService(android.support.v7.app.TwilightManager.class);  
//'android.support.v7.app.TwilightManager' is not public in 'android.support.v7.app'. Cannot be accessed from outside package    

【问题讨论】:

  • 在您的AppCompatActivity 上调用getDelegate(),然后使用setDefaultNightMode() 之类的方法。如果您使用 MODE_NIGHT_AUTO 以外的其他内容,我认为您可能会避免使用这些日志。

标签: android location location-services


【解决方案1】:

停止记录的一种方法是告诉 TwilightManager 不要使用夜间模式:

AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO)

这可以从您的第一个活动开始运行。

另外,您可以了解为什么 TwilightManager 认为它首先需要为您做任何事情。检查您的styles.xml。你有任何daynight主题吗?

<style name="CommonTheme" parent="Theme.AppCompat.DayNight.DarkActionBar">

你可以考虑替代方案。

【讨论】:

    猜你喜欢
    • 2012-03-02
    • 2012-08-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多