You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Wear OS(SDK 33/34)中检测省电模式是否开启?

Wear OS 中正确检测省电模式的方法

你用的这两种方法本身是Android平台的标准实现,但Wear OS有特殊的权限限制,才导致你遇到了失效问题。以下是具体原因和解决办法:

一、PowerManager.isPowerSaveMode 始终返回false的解决

  • Wear OS 对第三方应用读取省电模式状态做了权限限制,默认情况下普通应用无法获取真实状态,必须申请对应权限。
  • 操作步骤:
    1. 在AndroidManifest.xml中声明权限:
      <uses-permission android:name="android.permission.POWER_SAVE_MODE" />
      
    2. 运行时动态申请权限(该权限属于危险权限,必须用户授权):
      const val REQUEST_CODE_POWER_SAVE = 1001
      
      // 在Activity或Fragment中调用
      if (ContextCompat.checkSelfPermission(context, Manifest.permission.POWER_SAVE_MODE)
          != PackageManager.PERMISSION_GRANTED) {
          ActivityCompat.requestPermissions(
              this@YourActivity,
              arrayOf(Manifest.permission.POWER_SAVE_MODE),
              REQUEST_CODE_POWER_SAVE
          )
      }
      
    3. 等用户授权通过后,再调用powerManager.isPowerSaveMode就能拿到正确的状态值了。

二、ACTION_POWER_SAVE_MODE_CHANGED 广播接收器不触发的解决

  • 核心问题还是权限:未申请POWER_SAVE_MODE权限时,接收器无法收到系统广播。
  • 另外从Android 8.0(API 26)开始,静态注册的广播接收器无法接收这类系统广播,必须改为动态注册:
    private val powerSaveReceiver = object : BroadcastReceiver() {
        override fun onReceive(context: Context?, intent: Intent?) {
            if (Intent.ACTION_POWER_SAVE_MODE_CHANGED == intent?.action) {
                val powerManager = context?.getSystemService(Context.POWER_SERVICE) as PowerManager
                val isPowerSaveOn = powerManager.isPowerSaveMode
                // 在这里处理省电模式切换后的逻辑
            }
        }
    }
    
    // 在页面可见时注册广播
    override fun onResume() {
        super.onResume()
        val filter = IntentFilter(Intent.ACTION_POWER_SAVE_MODE_CHANGED)
        registerReceiver(powerSaveReceiver, filter)
    }
    
    // 在页面不可见时注销广播,避免内存泄漏
    override fun onPause() {
        super.onPause()
        unregisterReceiver(powerSaveReceiver)
    }
    
  • 同样要确保已经获取了POWER_SAVE_MODE权限,否则动态注册也收不到广播。

三、额外提示

  • 部分Wear OS设备有厂商定制的省电规则,建议优先在真实设备上测试,避免模拟器的状态偏差。
  • 只有系统级应用可以跳过权限申请流程,普通第三方应用必须严格按上述步骤操作。

内容的提问来源于stack exchange,提问作者Michael Sorensen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 01:30:21