为什么android应用程序中会自动添加android.hardware.telephony功能

为什么android应用程序中会自动添加android.hardware.telephony功能,android,telephonymanager,Android,Telephonymanager,在发布apk to play store时,我发现我的应用程序需要android.hardware.telephony功能,但我没有在任何地方的清单中添加它。我还检查了AndroidStudio中合并的清单,它也不包含此功能,因此我认为没有第三方sdk添加此功能。此功能的来源可能是什么 作为参考,我在清单中声明了以下权限: <uses-permission android:name="android.permission.INTERNET" /> <uses-permissio

在发布apk to play store时,我发现我的应用程序需要
android.hardware.telephony
功能,但我没有在任何地方的清单中添加它。我还检查了AndroidStudio中合并的清单,它也不包含此功能,因此我认为没有第三方sdk添加此功能。此功能的来源可能是什么

作为参考,我在清单中声明了以下权限:

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.MANAGE_ACCOUNTS" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.READ_SMS" />
<uses-permission android:name="android.permission.RECEIVE_SMS" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

此外,当我使用以下代码将其设置为可选时,该应用程序在没有此功能的设备上可用:

<uses-feature
    android:name="android.hardware.telephony"
    android:required="false" />


那么,为什么默认情况下需要它而不在任何地方添加它呢?

您的项目正在使用的一个或多个依赖项/模块/库正在将该要求添加到您的
Android清单中

要进行调查,请在
Android Studio
中打开主
Android清单
文件,然后单击页面底部的
合并清单
选项卡

这将向您显示最终合并清单的视图,以及每行的源

请在此处阅读更多信息:

如何修复

如果希望避免将该要求添加到最终清单中,可以使用清单中的节点标记来控制合并的工作方式

请在此处阅读有关节点标记的详细信息:

e、 g.试试这个:

<uses-feature
    android:name="android.hardware.telephony"
    android:required="false"
    tools:node="replace" />

根据您请求的权限,Google Play会自动添加一些功能

由于您请求了
READ\u SMS
RECEIVE\u SMS
权限,这意味着您使用了
telephony
功能。因此,Google Play的反应就像您的
AndroidManifest.xml
中包含以下内容一样:

<uses-feature
    android:name="android.hardware.telephony"
    android:required="true" />

当您手动添加并声明它
required=“false”
时,这会告诉Google Play,虽然您确实请求许可,但您可以处理用户没有
电话功能的情况

这一点通过以下途径得到确认:

注意:某些系统权限隐含地要求设备功能的可用性。例如,如果您的应用程序请求访问蓝牙的权限,则这意味着需要蓝牙设备功能

暗示的权限和功能要求的完整列表,包括您的情况:

最后,通过您的
ACCESS\u rough\u LOCATION
,您也在
android.hardware.LOCATION
上声明一项功能要求,仅供参考


上还有更多详细信息。

合并清单中没有该功能。我在问题中也提到了。这个问题解决了吗?@BharathKumar现在很可能是: