如何从 Necessitas Android 应用程序中删除所有默认权限?
Posted
技术标签:
【中文标题】如何从 Necessitas Android 应用程序中删除所有默认权限?【英文标题】:How to remove all default permissions from a Necessitas Android app? 【发布时间】:2012-12-30 06:28:56 【问题描述】:android 的 Necessitas 应用似乎默认启用了三个权限:
- Storage
modify/delete SD card contents
- Network communication
full internet access
- Phone calls
read phone state and identity
我想删除它们。我已经尝试在我的所有项目文件中搜索uses-permission
,并从AndroidManifest.xml
中找到并删除了这两行:
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
但是,现在删除这些行后,我的 Necessitas 应用仍然需要两个权限:
- Storage
modify/delete SD card contents
- Phone calls
read phone state and identity
看来我只去掉了网络权限。如何摆脱这三个?
【问题讨论】:
【参考方案1】:应用所需的所有权限都列在AndroidManifest.xml
文件中,例如
<uses-permission android:name="android.permission.INTERNET"/>
如果不需要,您可以从清单中删除它们。您的清单中还有哪些其他权限?
但是,如果您的应用程序需要您删除的权限才能运行,您将收到异常。因此,您需要检查您的应用是否需要已删除的权限
【讨论】:
感谢您的回复。我已经删除了AndroidManifest.xml
的所有权限,但是安装的时候app还是会要求权限,所以我有点难过。尽管我在AndroidManifest.xml
中拥有这些权限,您是否认为 Necessitas 框架正在将权限编译到我的应用程序中?
据我了解,您可以在 QTCreator 项目窗口中设置所需的权限。您的清单将自动生成【参考方案2】:
当我将使用 Necessitas 开发的应用程序发布到 Google Play 时,Phone calls
权限消失了,我不知道为什么:P
Storage
权限仍然有效,我的应用需要它。
【讨论】:
嗯,很高兴知道,但我仍然想知道为什么会发生这种情况。我在AndroidManifest.xml
中没有权限。无论AndroidManifest.xml
中有什么,你认为Necessitas 在我们编译时会添加权限吗?
@trusktr 嗨,我没有检查源代码,只能猜测 Necessitas 或ADT 如果不存在则生成默认的AndroidManifest.xml
。 Necesitas 的The active developers 应该知道细节。【参考方案3】:
仔细阅读清单文件:
<!-- The following comment will be replaced upon deployment with default permissions based on the dependencies of the application.
Remove the comment if you do not require these default permissions. -->
<!-- %%INSERT_PERMISSIONS -->
【讨论】:
以上是关于如何从 Necessitas Android 应用程序中删除所有默认权限?的主要内容,如果未能解决你的问题,请参考以下文章
Necessitas SDK for android app with Qt
无法将 openal soft 与 necessitas 关联