为什么android应用程序中会自动添加android.hardware.telephony功能
在发布apk to play store时,我发现我的应用程序需要为什么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
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现在很可能是: