làm điều đó với người nhận. bạn có thể được thông báo về thay đổi trạng thái mạng. ví dụ,
private BroadcastReceiver networkReceiver = new BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
super.onReceive(context, intent);
if(intent.getExtras()!=null) {
NetworkInfo ni=(NetworkInfo) intent.getExtras().get(ConnectivityManager.EXTRA_NETWORK_INFO);
if(ni!=null && ni.getState()==NetworkInfo.State.CONNECTED) {
// we're connected
}
}
// we're not connected
}
}
đăng ký này trong onResume()
của bạn, và unregister trên onPause()
.
@Override
protected void onPause() {
super.onPause();
unregisterReceiver(networkReceiver);
}
@Override
protected void onResume() {
super.onResume();
IntentFilter filter = new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION);
registerReceiver(networkReceiver, filter);
}
thêm vào đó, để có được tình trạng ban đầu trước khi nhận bạn đã đăng ký, gọi đây là trong phương pháp onResume()
của bạn,
public boolean isNetworkConnected() {
ConnectivityManager cm =
(ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo netInfo = cm.getActiveNetworkInfo();
if (netInfo != null && netInfo.isConnectedOrConnecting()) {
return true;
}
return false;
}
đảm bảo các yêu cầu ứng dụng của bạn cho phép này,
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
Nguồn
2012-09-24 18:28:16
Tại sao bạn cần phải làm điều này? –