为什么应用程序不在清单中写入就请求许可
Why apps asks permission without writing it in manifest
我有一个应用程序,其中的清单只有以下几行权限
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.GET_ACCOUNTS"/>
但在安装应用程序时,Play 商店显示以下权限
身份
使用以下一项或多项:设备上的帐户、配置文件数据
地点
使用设备的位置
Photos/Media/Files
使用以下一项或多项:设备上的文件,例如图像、视频或音频,设备的外部存储
因为我既不询问用户位置也不使用它,为什么 Play 商店显示这个?
编辑:如何修复
接受答案的 link 和 this google page 帮助我解决了问题。基本上 play-services 使用位置,所以我只是用 service-plus 和 service-ads 替换它们,解决了这个问题。希望这对其他一些开发人员有所帮助。
具体
替换 compile 'com.google.android.gms:play-services:7.5.0'
和
compile 'com.google.android.gms:play-services-ads:7.5.0'
compile 'com.google.android.gms:play-services-plus:7.5.0'
Since I am not asking for user location neither I am using it, why play store is showing this ?
它显示了您的应用程序需要什么,即使您没有明确将其放入您的清单文件中。事实上,最终的清单是合并您的 AndroidManifest.xml
和您的依赖项(通常通过 gradle 的 compile ...
引用)提供的所有清单的结果。
如果您想知道哪个依赖项导致了您的最终权限要求,您可以检查 <PROJECT>/app/build/outputs/logs
文件夹中的清单合并报告文件并查找 uses-permission#<PERMISSION_YOU_LOOK_FOR>
,即:
uses-permission#android.permission.WRITE_EXTERNAL_STORAGE
ADDED from AndroidManifest.xml:11:5
MERGED from com.google.android.gms:play-services-maps:7.5.0:22:5
进一步阅读:
- 官方文档章节:Merge Multiple Manifest Files
- 关于以下主题的博客 post:Hey, Where Did These Permissions Come From?
我有一个应用程序,其中的清单只有以下几行权限
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.GET_ACCOUNTS"/>
但在安装应用程序时,Play 商店显示以下权限
身份
使用以下一项或多项:设备上的帐户、配置文件数据
地点
使用设备的位置
Photos/Media/Files
使用以下一项或多项:设备上的文件,例如图像、视频或音频,设备的外部存储
因为我既不询问用户位置也不使用它,为什么 Play 商店显示这个?
编辑:如何修复
接受答案的 link 和 this google page 帮助我解决了问题。基本上 play-services 使用位置,所以我只是用 service-plus 和 service-ads 替换它们,解决了这个问题。希望这对其他一些开发人员有所帮助。
具体
替换 compile 'com.google.android.gms:play-services:7.5.0'
和
compile 'com.google.android.gms:play-services-ads:7.5.0'
compile 'com.google.android.gms:play-services-plus:7.5.0'
Since I am not asking for user location neither I am using it, why play store is showing this ?
它显示了您的应用程序需要什么,即使您没有明确将其放入您的清单文件中。事实上,最终的清单是合并您的 AndroidManifest.xml
和您的依赖项(通常通过 gradle 的 compile ...
引用)提供的所有清单的结果。
如果您想知道哪个依赖项导致了您的最终权限要求,您可以检查 <PROJECT>/app/build/outputs/logs
文件夹中的清单合并报告文件并查找 uses-permission#<PERMISSION_YOU_LOOK_FOR>
,即:
uses-permission#android.permission.WRITE_EXTERNAL_STORAGE
ADDED from AndroidManifest.xml:11:5
MERGED from com.google.android.gms:play-services-maps:7.5.0:22:5
进一步阅读:
- 官方文档章节:Merge Multiple Manifest Files
- 关于以下主题的博客 post:Hey, Where Did These Permissions Come From?