기본적으로 좋은 사마리아인이되기 위해 노력하는 응용 프로그램이 있습니다. 기본적으로 서비스가 시작되면 네트워크와 상호 작용해야합니다. 이 방법은 내가 사용자가 전화 또는 3G에 있기 때문에 나는 연결이없는 것을 알고 false를 반환하면네트워크 연결이 언제 반환되는지 알고 있습니다.
hasConnectivity 방법
private boolean hasConnectivity() {
NetworkInfo info = mConnectivity.getActiveNetworkInfo();
boolean connected = false;
int netType = -1;
int netSubtype = -1;
if (info == null) {
Log.w(sTag, "network info is null");
notifyUser(MyIntent.ACTION_VIEW_ALL, "There is no network connectivity.", false);
} else if (!mConnectivity.getBackgroundDataSetting()) {
Log.w(sTag, "background data setting is not enabled");
notifyUser(MyIntent.ACTION_VIEW_ALL, "background data setting is disabled", false);
} else {
netType = info.getType();
netSubtype = info.getSubtype();
if (netType == ConnectivityManager.TYPE_WIFI) {
connected = info.isConnected();
} else if (netType == ConnectivityManager.TYPE_MOBILE
&& netSubtype == TelephonyManager.NETWORK_TYPE_UMTS
&& !mTelephonyManager.isNetworkRoaming()
) {
connected = info.isConnected();
} else if (info.isRoaming()) {
notifyUser(MyIntent.ACTION_VIEW_ALL, "Currently Roaming skipping check.", false);
} else if (info.isAvailable()) {
connected = info.isConnected();
} else {
notifyUser(MyIntent.ACTION_VIEW_ALL, "..There is no network connectivity.", false);
}
}
return connected;
}
: 나는 장치가 연결되어 있는지 확인하고 및 WiFi를 사용할 수 없습니다.
주기적으로 타이머를 사용하여 네트워크 통계를 가져 오는 동안 연결이 가능할 때를 알 수있는 가장 좋은 방법은 무엇입니까?
브로드 캐스트 리시버에서 연결을 통해 변경 사항을 알릴 수있는 의도 동작이 있습니까?
어떤 도움을 주셔서 감사합니다. 다음에 수행 할 작업에 대한 실마리를 찾기 위해 문서를 계속 검색 할 것입니다.
문서를 탐색 할 때 감사합니다. ConnectivityManager.CONNECTIVITY_ACTION을 놓쳐 버려야합니다. 내가 바라는 바로 그 것이 었습니다. – Double
검색과 저주의 시간을 알면 나 자신 외에 도움이되었습니다. – iarwain01