您可以使用ConnectivityManager獲取網絡信息。首先在這裏,你可以檢查用戶是否連接到Wifi。如果他們是在移動無線電,你可以抓住它們連接到帶網絡的類型如下:
ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
if(activeNetwork.getType() != ConnectivityManager.TYPE_WIFI)
{
String typeName=activeNetwork.getSubtypeName()
int type = activeNetwork.getSubtype()
switch(type)
{
// values are of type TelephonyManager.NETWORK_TYPE_* enums
}
}
一個方便的查找表,然後讓你知道你處理什麼樣的網絡,什麼期待儘可能好的帶寬和延遲。
但事實上,該價值給你最好的情況下,在野外,你會得到更糟糕的結果。即使你的用戶可能在LTE網絡上,用戶可能會在本月的數據上限,並因此而受到限制連接。
這就是爲什麼我喜歡總是將時間度量添加到已知的資產大小。因此,如果您獲取128x128縮略圖,您大概知道它的大小有多少個字節,並且通過上述信息,您可以猜測它是預期的獲取延遲。但是,您可以計算獲取時間,並相應地調整您的指標。
正在建立網絡正確更多的是編寫適應網絡條件的代碼,而不是其他任何東西。