我的应用程序拥有 INTERNET 权限。但现在我想在我的应用程序中添加谷歌分析。它说它需要一个 CHECK_INTERNET_SATE。我必须添加它吗?如果是这样,它看起来很奇怪 - 可以访问互联网的应用程序无法读取它的状态。我觉得不正常
最佳答案
这两种权限之间有一个基本的区别,
<uses-permission android:name="android.permission.INTERNET" />
上述权限允许应用程序打开网络套接字。
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
如上所示,ACCESS_NETWORK_STATE
权限允许应用程序访问有关网络的信息。
示例:
如果你想在WebView
中加载一个URL,你只需要android.permission.INTERNET
权限。
如果您需要从服务器下载一些数据,您需要在下载前检查互联网连接是否可用。否则,如果没有连接,应用程序可能会崩溃。您可以通过以下方式检查互联网连接,
public boolean isOnline() {
ConnectivityManager cm =
(ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo netInfo = cm.getActiveNetworkInfo();
if (netInfo != null && netInfo.isConnectedOrConnecting()) {
return true;
}
return false;
}
在上面的代码 fragment 中,您正在获取有关网络的信息,因此您必须获得 android.permission.ACCESS_NETWORK_STATE
权限。
And it says it need a CHECK_INTERNET_SATE. Do I have to add it?
Google Analytics SDK 在将信息发送到服务器之前检查网络可用性,因此您也需要该权限。
希望它能消除您的疑虑。
引用
http://developer.android.com/reference/android/Manifest.permission.html
关于android - 如果我有 INTERNET,我需要 ACCESS_NETWORK_STATE 权限吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23753245/