2012-08-03 3 views
12

나는 웹 서비스 일을 포함하는 App으로 작업 중이다.android에서 인터넷 속도 계산하기

인터넷 속도가 낮은 상태를 알아야합니다. Android에서 인터넷 속도 수준을 찾는 방법은 무엇입니까?

예를 들어 휴대 전화에서 2Mbps 연결을 사용하고 50Kbps로 느려지는 경우 토스트 또는 경고를 만들어 해당 상황을 알아야합니다.

감사합니다.

+0

이 http://stackoverflow.com/questions/4429605/how-to-get-link-speed-programmatically 도움이 될 수 – Calvin

답변

11

당신이 WiFi에 연결되어있는 경우 WifiManager을 사용하여 연결의 속도를 찾을 수 있습니다

WifiInfo wifiInfo = wifiManger.getConnectionInfo(); 

다음 WifiInfo에서 현재 속도를 얻을 수 있습니다 : 당신이 경우

int speedMbps = wifiInfo.getLinkSpeed(); 

을 3G에서, 나는 발견 할 수있는 표준 방법이 없다고 생각한다. 어쩌면 당신은 자동적으로 3G가 느리다는 가정을 할 수있다.

+2

어쨌든 고맙지 만, 여전히 인터넷 속도뿐만 아니라 와이파이뿐만 아니라 3G, 2G에서 찾고 있어요. – Dhamodharan

+2

이 답변은 올바르지 않습니다. 귀하의 ISP (WiFi 어댑터 또는 라우터가 아닌)에 의해 결정되므로 인터넷 속도를 얻을 수 없습니다. – mittelmania

+0

네트워크의 속도를 제공하는 'android 라이브러리'가 없습니다. 'wifiInfo.getLinkSpeed'는 시간의 변화에 ​​따라 계속 유지되는 네트워크의 최대 속도를 제공합니다. –

6

안정적인 해결책이 없지만 인터넷 속도를 얻으려면 도움이 될만한 응용 프로그램 소스 코드 인 this이 발견되었습니다.

+4

링크가 작동하지 않습니다. 그래서 답변에 코드를 게시해야합니다. – pomber

0

이이 연결되어있는 동안 무선 랜으로 인터넷의 속도를 얻는 코드입니다 facebook sdk

ConnectionQuality cq = ConnectionClassManager.getInstance().getCurrentBandwidthQuality(); 
+0

항상 알 수 없음을 반환합니다. –

+0

로낙이 맞습니다. lib가 더 이상 작동하지 않습니다 – YingYang

+0

이것은 항상 알 수 없음을 반환합니다 – surya

0

으로 인터넷 연결 속도를 감지하는 specilally입니다.

WifiManager wifiManager = (WifiManager) 
    this.getSystemService(Context.WIFI_SERVICE); 

List<ScanResult> wifiList = wifiManager.getScanResults(); 
for (ScanResult scanResult : wifiList) { 
    int level = WifiManager.calculateSignalLevel(scanResult.level, 5); 
    String net=String.valueOf(level); 
    // Toast.makeText(MainActivity.this,net,Toast.LENGTH_LONG).show(); 

} 

// Level of current connection.here rssi is the value of internet speed whose value 
// can be -50,-60 and some others,you can find the speed values easily on internet. 

int rssi = wifiManager.getConnectionInfo().getRssi(); 
int level = WifiManager.calculateSignalLevel(rssi, 5); 
String net=String.valueOf(rssi); 
Toast.makeText(MainActivity.this,net,Toast.LENGTH_LONG).show(); 

// -100 is the minimum speed value of your internet. 
if(rssi < -100) { 
    slowInternet=false; 
} 
관련 문제