2014-02-14 68 views
6

我正在開發一個android應用程序,它將被定製設備使用,它將支持以太網(也包括wifi)。Android - 以太網 - 以編程方式

該應用程序必須啓用以太網的設置活動。

請注意,此設置必須由應用程序運行,而不是由android設置運行,因爲應用程序將是設備上運行的唯一的東西,用戶將無法訪問android中的運行背景。

用戶必須能夠:1。 啓用/禁用以太網 2.選擇DHCP或靜態 3.如果選擇了靜態 - 設置IP,網關

的問題是,我不能以編程方式訪問android.net.ethernet,並且在線沒有關於此問題的解釋。

所以如果有人做了這樣的事情,請幫助我進入正確的方向。

謝謝。

+0

我只能提供一些鏈接這可有助於:[android.net.ethernet](https://gitorious.org/0xdroid/frameworks_base/source/248edcc9f3ee2a69be568906af6ebad376817e47:ethernet/java/android/net/ethernet) ,[android以太網教程](http://de.slideshare.net/gxben/elce-2012-dive-into-android-networking-adding-ethernet-connectivity) – Manu

+0

謝謝。我已經在幾天前看到這個,但它沒有幫助我更進一步:(因爲它是爲企業桌面IP電話完成的,它使用了一些我沒有的框架或不知道如何使用它們 – MTurPash

+0

同樣的問題.. 。http://stackoverflow.com/questions/21746192/ethernet-connectivity-through-programatically-android/21758581?noredirect=1#21758581 –

回答

0

我知道這是很晚了,但它可能會幫助別人。

我有一些你提到的我的android應用程序的要求。 這是我怎麼實現的一些觀點

1.啓用/禁用以太網

//啓用以太網

ifconfig eth0 up 

//關閉以太網

ifconfig eth0 down 

3 。如果選擇STATIC - 設置IP,網關

從java代碼中激發這些命令。

su -c ifconfig eth0 172.19.10.105 netmask 255.255.255.0 up 
route add default gw 172.19.10.2 dev eth0 

您可以使用以下代碼執行這些命令。

這裏command變量是上面提到的命令之一。

   Process p; 
       try { 
        p = Runtime.getRuntime().exec(command); 
        p.waitFor(); 
        BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream())); 

        String line = ""; 
        while ((line = reader.readLine())!= null) { 
         output.append(line + "n"); 
        } 

       } catch (Exception e) { 
        e.printStackTrace(); 
       } 
       String response = output.toString();