http://topic.csdn.net/u/20120305/22/2047ad41-6065-49fd-81d3-9e766c664ecb.html?61978
你這說的幾點技術上都和java沒什么差異,查看wifi是否連接,手機ip地址
- Java code
public String getIpAddress(){
String ipAddress = "";
try{
ipAddress = wifiIpAddress();
if(ipAddress!=null&&ipAddress.trim().length()>0){
}else{
ipAddress = this.GPRSIpAddress();
}
}catch(Exception ex){
}
return ipAddress;//有IP返回就聯網
}
private String wifiIpAddress(){
String ip = "";
//獲取wifi服務
WifiManager wifiManager = (WifiManager)(context).getSystemService(Context.WIFI_SERVICE);
//判斷wifi是否開啟
if (wifiManager.isWifiEnabled()) {
//wifiManager.setWifiEnabled(true);
WifiInfo wifiInfo = wifiManager.getConnectionInfo();
int ipAddress = wifiInfo.getIpAddress();
ip = intToIp(ipAddress);
}
return ip;
}
private String intToIp(int i) {
return (i & 0xFF ) + "." +
((i >> 8 ) & 0xFF) + "." +
((i >> 16 ) & 0xFF) + "." +
( i >> 24 & 0xFF) ;
}
private String GPRSIpAddress(){
try{
for (Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements();){
NetworkInterface intf = en.nextElement();
for (Enumeration<InetAddress> enumIpAddr = intf.getInetAddresses(); enumIpAddr.hasMoreElements();){
InetAddress inetAddress = enumIpAddr.nextElement();
if (!inetAddress.isLoopbackAddress()){
return inetAddress.getHostAddress().toString();
}
}
}
}catch (SocketException ex){
Log.d("GPRSIpAddress IpAddress", ex.toString());
}
return "";
}
另外配上
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
這三個權限
別把wifi和手機的gprs網絡看得這么神秘,說白了還是網絡。
只要有一臺公網IP地址的,相互socket都沒問題。
如果沒有公網IP,那就只能局域網了。
加密解密無非是你文本的轉化。,只要客戶端和服務器端有對應的加密和解密算法就可以了