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 有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章

网络状态获取

22222222

广播权限声明

Android 连接MySQL

安卓笔记——使用WebView加载网页

Android检查网络状态步骤