ACCESS_NETWORK_STATE 和 INTERNET 有啥区别?
Posted
技术标签:
【中文标题】ACCESS_NETWORK_STATE 和 INTERNET 有啥区别?【英文标题】:What's the difference between ACCESS_NETWORK_STATE and INTERNET?ACCESS_NETWORK_STATE 和 INTERNET 有什么区别? 【发布时间】:2013-11-07 15:39:31 【问题描述】:ACCESS_NETWORK_STATE 和 INTERNET 有什么区别?
如果我使用 INTERNET,是否需要使用 ACCESS_NETWORK_STATE?
换句话说,我可以在不使用 ACCESS_NETWORK_STATE 的情况下使用 INTERNET 吗?
【问题讨论】:
INTERNET 和 ACCESS_NETWORK_STATE 【参考方案1】:INTERNET 允许您使用互联网
ACCESS_NETWORK_STATE 允许您获取网络状态 (wifi ,3g,4g) 也可以检查网络是否已连接
如果没有互联网,HTTP 请求将失败,您将获得某种必须处理的异常
【讨论】:
【参考方案2】:来自the documentation:
ACCESS_NETWORK_STATE
:
允许应用程序访问有关网络的信息
INTERNET
:
允许应用程序打开网络套接字。
简而言之,INTERNET
权限允许您使用互联网,而ACCESS_NETWORK_STATE
只会为您提供有关网络的信息,例如您是否已连接到网络。
您可以使用其中一个而不需要另一个。如果您在尝试使用 Internet 之前没有检查您的网络连接是否有效,那么您的 HTTP 请求将会失败。
【讨论】:
是的,但是如果我要打开一个网络套接字,我当然需要检查是否有互联网连接,不是吗? @Mageek 你不必检查是否有连接,如果没有,请求将失败或其他什么 谢谢,这是我的答案,你能把它添加到你的答案中,我会接受它【参考方案3】:android.permission.INTERNET
如果您只想使用互联网(连接到网络服务或在 webView 上显示网页)就足够了。
android.permission.ACCESS_NETWORK_STATE
在使用互联网之前查询网络状态是“很高兴”。
【讨论】:
你有查询网络状态吗?捕获HTTP请求失败时抛出的异常还不够吗? 不,您不必查询网络状态。 ACCESS_NETWORK 使用案例:在你的应用程序中,你想上传/下载大量数据,并且你更喜欢在用户通过 wi-fi 连接时进行(你不想花费用户移动数据包),你可以查询连接具有此权限的状态。以上是关于ACCESS_NETWORK_STATE 和 INTERNET 有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章