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

应用切换语言后,Kpermission权限请求仍跟随系统语言的问题求助

解决Kpermission权限请求语言不跟随应用设置的问题
  • 问题本质:Kpermission默认采用系统上下文构建权限弹窗,导致弹窗语言跟随系统语言,而非应用自定义的语言配置。
  • 修复方案:
    1. 确认应用已完成多语言切换的基础配置,切换语言时能正确更新上下文的语言参数。
    2. 初始化Kpermission时,传入已配置应用语言的上下文,而非默认的Application或Activity原始上下文:
      // 示例:基于当前上下文创建已设置目标语言的新上下文
      val config = context.resources.configuration.apply {
          setLocale(Locale("zh", "CN")) // 替换为你的应用目标语言
      }
      val customLangContext = context.createConfigurationContext(config)
      // 使用该上下文初始化Kpermission
      val permissionManager = KPermissions.with(customLangContext)
          .permissions(Manifest.permission.CAMERA)
          .build()
      
    3. 若在Activity中使用,可重写attachBaseContext方法,确保Activity上下文始终同步应用语言:
      override fun attachBaseContext(newBase: Context) {
          // 这里替换为你的应用语言更新逻辑
          val updatedContext = getUpdatedLanguageContext(newBase)
          super.attachBaseContext(updatedContext)
      }
      
  • 验证方式:切换应用语言后重新发起权限请求,确认弹窗语言与应用当前语言一致。

权限请求弹窗(当前跟随系统语言)

内容的提问来源于stack exchange,提问作者the great warrior

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 10:50:37