android 即時通訊應用程式練習~~
10/08今天開始做這個練習,今天的進度是成功的讓手機可以送音訊到VLC PLAYER上
notes:
需要指定sender&receiver的ip,所以如果要可以隨意手機安裝就可以連線講的話,需要從sender透過web session傳輸media data 再透過web session傳輸給receiver!!
取得手機IP
public String getLocalIpAddress() {
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.e("WifiPreference IpAddress", ex.toString());
}
return null;
}
不过,我在android 4.0上面的机器运行时,发现按照上文得到的地址是Ipv6的地址,而不是Ipv4的地址。
解法為-->
public String getLocalIpAddress() {
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()&&!inetAddress.isLinkLocalAddress()) {
return inetAddress.getHostAddress().toString();
}
}
}
} catch (SocketException ex) {
Log.e("WifiPreference IpAddress", ex.toString());
}
return null;
}
就是在内部加入一句话:
notes:
需要指定sender&receiver的ip,所以如果要可以隨意手機安裝就可以連線講的話,需要從sender透過web session傳輸media data 再透過web session傳輸給receiver!!
取得手機IP
不过,我在android 4.0上面的机器运行时,发现按照上文得到的地址是Ipv6的地址,而不是Ipv4的地址。
解法為-->
就是在内部加入一句话:
!inetAddress.isLinkLocalAddress()
留言
張貼留言