如何在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:如何在事件处理函数中获取事件对象而不将其作为参数传递?

如何播放音频样本而不将其写入文件?

Android:旋转图像而不将其加载到内存中

如何安装 React Native 应用程序而不将其发布到任何商店?

如何访问对象而不将其作为参数传递?