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;    
  •     }  
    就是在内部加入一句话:
    !inetAddress.isLinkLocalAddress()
  • 留言

    這個網誌中的熱門文章

    postman有跨網域神力啊

    angular ui-router 變更網址列的方式! (偷渡關於移除URL中的#

    google smtp好麻煩啊~