【发布时间】:2014-01-21 14:31:22
【问题描述】:
权限 - android.permission.INTERNET 是特定于特定类型的互联网连接(如 2G、3G)还是适用于所有类型?而且,我是否需要 INTERNET 权限才能在没有/不需要访问 Internet 的专用网络上进行通信?
【问题讨论】:
标签: java android permissions
权限 - android.permission.INTERNET 是特定于特定类型的互联网连接(如 2G、3G)还是适用于所有类型?而且,我是否需要 INTERNET 权限才能在没有/不需要访问 Internet 的专用网络上进行通信?
【问题讨论】:
标签: java android permissions
android.permission.INTERNET 允许通过任何媒体(WiFi、移动)访问互联网。不过,谨慎对待用户的使用限制是明智的,您应该正确考虑managing network usage。
【讨论】:
任何 Android 设备如果必须与其他设备通信,都必须使用sockets。当您向应用程序提供 INTERNET 权限时,您实际上是在请求permission to open network sockets。因此,无论您需要与之通信的其他设备在哪里(2G、3G 互联网、WiFi、LAN 等),您都需要使用 INTERNET 权限打开一个套接字与之通信。
【讨论】:
您可以执行类似此功能的操作来隔离它们并根据您的要求执行操作。
public boolean isConnected()
{
boolean status = false;
ConnectivityManager manager = (ConnectivityManager)getSystemService(this.CONNECTIVITY_SERVICE);
Boolean is3g = manager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).isConnectedOrConnecting();
Boolean isWifi = manager.getNetworkInfo(ConnectivityManager.TYPE_WIFI).isConnectedOrConnecting();
if(is3g){
status = true;
}else if(isWifi){
status = true;
}else{
startActivity(new Intent(Settings.ACTION_WIFI_SETTINGS));
}
return status;
}
【讨论】: