使用 Build.VERSION.SDK_INT 会自动添加 READ_PHONE_STATE 权限吗?

Posted

技术标签:

【中文标题】使用 Build.VERSION.SDK_INT 会自动添加 READ_PHONE_STATE 权限吗?【英文标题】:Does using Build.VERSION.SDK_INT automatically add the READ_PHONE_STATE permission? 【发布时间】:2015-09-27 19:55:26 【问题描述】:

在我的应用程序中,我检查了Build.VERSION.SDK_INT,以便有条件地警告用户他们需要更新 android 才能使用特定功能。它看起来像这样:

if (Build.VERSION.SDK_INT >= 15) 
    // Good to go
 else 
    // Needs an Android update

在我发布的最新更新中,添加了READ_PHONE_STATE 权限,尽管它在AndroidManifest.xml声明如下:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.me.myapp"
    android:versionCode="1"
    android:versionName="1.0.0" >

    <uses-sdk
        android:minSdkVersion="10"
        android:targetSdkVersion="14" />

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="com.android.vending.BILLING" />
    ...

我发现了几个相关的问题(1、2),稍后我会尝试测试我的依赖项是否会导致问题。

但是出于好奇(而且由于我现在无法访问我的代码),使用Build.VERSION.SDK_INT 会导致自动添加READ_PHONE_STATE 权限吗?

或者更好的是,什么可能导致自动添加此权限

【问题讨论】:

向您的应用添加一段 java 代码永远不会导致添加权限。您引用的第一个 *** 问题的答案似乎很好地涵盖了可能的原因。 人们不能只更新他们的 Android 版本。与其告诉用户更新,不如让该功能不可用。 【参考方案1】:

使用 Build.VERSION.SDK_INT 会导致自动添加 READ_PHONE_STATE 权限吗?

没有。

或者更好的是,什么可能导致自动添加此权限?

A library, most likely.

【讨论】:

感谢您的回答。等我回到家开始调试依赖!

以上是关于使用 Build.VERSION.SDK_INT 会自动添加 READ_PHONE_STATE 权限吗?的主要内容,如果未能解决你的问题,请参考以下文章

Android Studio调用系统的代码中Build.VERSION.SDK_INT >= Build.VERSION_CODES.xxx

androidcookie

如果Android版本在“X”下如何隐藏ImageButton?

Android知识点:隐藏底部虚拟按键

Android 屏蔽下方虚拟按键

沉浸式设计