2015-12-05 107 views
2

我正在使用Android棉花糖api,它使用戶可以同時使用LTE和WiFi(即)我們可以強制我們的應用程序使用使用hipri網絡的LTE,即使在通過設置網絡類型打開wifi。獲取LTE和WiFi同時連接到Android M時的IP地址

我檢查這個鏈接:Send request over Mobile data when WIFI is ON.(Android L)

builder.addCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET); 
    builder.addTransportType(NetworkCapabilities.TRANSPORT_CELLULAR); 

    mNetworkCallback = 
      new NetworkCallback() { 
       @Override 
       public void onAvailable(Network network) { 
        super.onAvailable(network); 
        Log.d(TAG, "activate(): onAvailable(): " + network); 
        myConnManager.bindProcessToNetwork(network); 
        myCallback.networkStateChanged(State.CONNECTED); 
       } 

       @Override 
       public void onLosing(Network network, int maxMsToLive) { 
        super.onLosing(network, maxMsToLive); 
        Log.d(TAG, "activate(): onLosing(): ms to live: " + maxMsToLive); 
        myCallback.networkStateChanged(State.DISCONNECTING); 
       } 

       @Override 
       public void onLost(Network network) { 
        super.onLost(network); 
        Log.d(TAG, "activate(): onLost(): " + network); 
        myConnManager.bindProcessToNetwork(null); 
        myCallback.networkStateChanged(State.DISCONNECTED); 
       } 
      }; 

現在我在得到這兩個連接的WiFi網絡和LTE網絡的IP地址的工作。我不知道如何並行檢索兩個連接網絡的IP地址。

這裏的任何幫助將是可觀的。

+0

「檢索IP地址」---?。我認爲你想在你的兩個接口(LTE和WiFi)上進行DHCP連接。檢查是否有任何API用於DHCP連接請求。 – Jay

回答

2

這裏是你如何可以得到InetAddressNetwork network對象:

ConnectivityManager manager = getSystemService(ConnectivityManager.class); 
LinkProperties prop = manager.getLinkProperties(network); 
InetAddress addr = prop.getLinkAddresses().get(0).getAddress(); 

在你的情況,你可以在任何NetworkCallback方法利用這一點,你會得到你的手機的IP地址數據連接(儘管我懷疑它只在onAvailable()有意義)。在API 23中,您可以使用getActiveNetwork()獲取與「當前有效的默認數據網絡」相對應的Network對象,該對象應該是Wi-Fi(但傳統意思是指獲取IP地址也應該指向這個網絡)。

+0

順便說一下,6.0中有一個阻止使用'requestNetwork()'的錯誤,它在6.0.1中修復。 – cuihtlauac

+0

謝謝cuihtlauac。現在我有另一個查詢。我在一個wifi通話中......當wifi連接失敗時,我想連接它與數據網絡並保持通話正常......當我用我將要連接的數據網絡註冊時,這是可能的。爲此,我需要數據連接的IP。所以當wifi強度低於1時,我們正在考慮通過代碼製作wifi->數據轉換手冊。因此,我們將擁有兩個IP。我可以強迫數據包在同一通話中無縫地傳輸數據和無線網絡嗎? – Ajitha

+0

對不起,我從來沒有嘗試過這樣做。看起來像一個大話題,可能值得問另一個問題:-) – cuihtlauac

相關問題