您的位置:首页 > 游戏 > 手游 > 互联网行业特点_it外包服务哪家好_西安网站优化公司_潍坊住房公积金管理中心

互联网行业特点_it外包服务哪家好_西安网站优化公司_潍坊住房公积金管理中心

2025/5/7 18:16:15 来源:https://blog.csdn.net/zhijiandedaima/article/details/147550653  浏览:    关键词:互联网行业特点_it外包服务哪家好_西安网站优化公司_潍坊住房公积金管理中心
互联网行业特点_it外包服务哪家好_西安网站优化公司_潍坊住房公积金管理中心

问题描述:

App集成了第三方的.aar包,.aar包中申请了定位权限,并且使用了 android:maxSdkVersion 属性;

<uses-permissionandroid:name="android.permission.ACCESS_COARSE_LOCATION"android:maxSdkVersion="30" />
<uses-permissionandroid:name="android.permission.ACCESS_FINE_LOCATION"android:maxSdkVersion="30" />

即使我的App中,已重新声明定位权限:

 <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /><uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

但是,当App运行时(Android 33),使用 PermissionX 动态申请权限时,发现 我的App系统的权限组映射里没有找到 ACCESS_FINE_LOCATION 和 ACCESS_COARSE_LOCATION 权限;

分析:

  • 第三方aar中声明的权限带有 maxSdkVersion=“30”,意味着这些权限仅在 API 30 及以下生效。 当你的应用运行在
  • API 33 时,系统会认为这两个权限已被“废弃”,从而不再将其加入权限组。

解决方法:

在我的App中,这样 重新声明定位权限:

使用 tools:node=“replace” 强制保留权限并移除 maxSdkVersion 限制:

<uses-permission-sdk-23 android:name="android.permission.ACCESS_COARSE_LOCATION"  tools:node="replace"/>
<uses-permission-sdk-23 android:name="android.permission.ACCESS_FINE_LOCATION"  tools:node="replace"/>

或者:

<uses-permission-sdk-23 android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission-sdk-23 android:name="android.permission.ACCESS_FINE_LOCATION" />

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com