我在我的应用中获得了INTERNET权限。但现在我想在我的应用中添加谷歌分析。它说它需要一个CHECK_INTERNET_SATE。我必须添加它吗?如果是这样,它看起来很奇怪 - 可以访问互联网的应用程序无法读取它的状态。我不认为这是正常的
答案 0 :(得分:7)
这两个权限之间存在基本差异,
<uses-permission android:name="android.permission.INTERNET" />
以上权限允许应用程序打开网络套接字。
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
上述ACCESS_NETWORK_STATE
权限允许应用访问有关网络的信息。
示例:强>
如果您要在WebView
中加载网址,则只需要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;
}
在上面的代码段中,您将获取有关网络的信息,因此您必须获得android.permission.ACCESS_NETWORK_STATE
权限。
And it says it need a CHECK_INTERNET_SATE. Do I have to add it?
Google AnalyticsSDK 会在向服务器发送信息之前检查网络可用性,因此您也需要该权限。
希望它能清除你的怀疑。
参考
http://developer.android.com/reference/android/Manifest.permission.html