2012-02-06 4 views
3

Android를 사용하는 TelephonyManager 응용 프로그램은 셀룰러 네트워크를 통한 데이터 활동 상태를 얻을 수 있습니다. 예를 들어, 활동이 들어오고 있거나 외출 중입니다. 장치가 Wifi를 사용하여 연결된 경우 동일한 정보를 얻는 방법을 아는 사람이 있는지 궁금합니다. 아이스크림 샌드위치 (4.0.3, 제 생각에는) 그들은이 정보를 와이파이 및 전화 모두에서 사용할 수 있지만 그 전에는 전화 전용입니다 (WifiManager는 아이스크림 샌드위치 릴리스까지 업데이트되지 않았습니다).android wifi 활성 데이터 전송

기본적으로 Wifi 네트워크에 연결되어있을 때 휴대 전화/태블릿에서 데이터를 전송 중인지 여부를 확인할 수 있기를 원합니다 (Wi-Fi가 연결된 것만이 아님). 이 데이터는 나와 함께 시작할 필요가 없습니다. 데이터가 활발하게 움직이는 지 알고 싶을뿐입니다.

어떻게 달성 할 수있는 아이디어가 있습니까? 나는 Android에 상당히 익숙하지 않으며이 정보로 인해 내 애플리케이션이 나쁜 일을하지 않도록하고 싶습니다. 어떤 생각이라도 미리 감사드립니다.

답변

1

나는 이것을 찾고 있었지만 완벽한 답을 얻지 못했지만 TrafficStats API를 사용하여 일종의 대략적인 데이터를 얻을 수 있습니다. 내가 타이머와 totalDownload 및 totalUpload라는 클래스 변수의 부부 때때로 떨어져 발사되는 코드의 조각을

...

long newTotalDownload = TrafficStats.getTotalTxBytes(); 
long newTotalUpload = TrafficStats.getTotalRxBytes(); 

long incDownload = newTotalDownload - totalDownload; 
long incUpload = newTotalUpload - totalUpload; 

if (incUpload > 0) 
{ 
    //data was being uploaded in the last time period 
} 
if (incDownload > 0) 
{ 
    //data was being downloaded in the last time period 
} 
//set up for the next iteration 
totalDownload = newTotalDownload; 
totalUpload = newTotalUpload; 

당신이 만약 내가 더 나은 답을하고자하지만 그것이 작동 하나 찾는다.

+0

인터넷 연결이없는 경우에도 업로드 부분은 긍정적입니다. . . 나는 다운로드 부분 만 이해한다고 생각한다. –