如何在android中获取用户权限而不将其声明为清单
Posted
技术标签:
【中文标题】如何在android中获取用户权限而不将其声明为清单【英文标题】:How to take User permissions in android without declaring it into manifest 【发布时间】:2019-08-11 00:14:02 【问题描述】:如果我在清单上声明此权限,我希望用户 READ_CONTACTS 和 ACCESS_NETWORK_STATE 权限为我的应用程序,我的应用程序被谷歌播放拒绝
Manifest file:
<uses-permission
android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.READ_CONTACTS"
/>
我正在使用此代码获取网络信息
ConnectivityManager cm = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetworkInfo = cm.getActiveNetworkInfo();
boolean networkState = activeNetworkInfo != null && activeNetworkInfo.isConnected();
如果我从清单文件“cm.getActiveNetworkInfo()”中删除权限,则会显示错误“您需要在清单文件上添加权限”
除了清单文件之外,他们是否有任何其他方式来获得用户权限 请帮我解决这个问题。
【问题讨论】:
如果你在 marshmallow 之上构建你的应用程序然后通过运行时权限来实现。 您的问题可能不是权限,除了将它们放在清单文件中之外,没有其他方法可以声明它们。尝试研究您的应用被拒绝的原因。 【参考方案1】:如果不在清单中声明,就无法请求权限。
与其专注于删除清单中的权限声明,不如专注于 Google Play 拒绝该应用的原因并尝试解决问题。
【讨论】:
【参考方案2】:根据官方文档,您必须在清单文件中声明权限。您在应用提交方面遇到了一些其他问题
【讨论】:
【参考方案3】:您的清单会告诉设备和 Play 商店您的应用。你不能试图跳过它。如果您真的不需要这些权限,请不要使用它。否则,如果您的应用已被停止,请在您的 Play 控制台中提出申诉。
编辑:阅读 this 关于 Manifest 和 Google Android 开发者文档。
【讨论】:
以上是关于如何在android中获取用户权限而不将其声明为清单的主要内容,如果未能解决你的问题,请参考以下文章
如何在javascript中获取django表单值而不将其保存到模型中
jQuery:如何在事件处理函数中获取事件对象而不将其作为参数传递?