您的位置:首页 > 移动开发 > Android开发

Android library listening network events.

2015-01-22 09:48 786 查看

Overview

It is able to detect
ConnectivityStatus
when it changes:

WIFI_CONNECTED("connected to WiFi")


WIFI_CONNECTED_HAS_INTERNET("connected to WiFi (Internet available)")


WIFI_CONNECTED_HAS_NO_INTERNET("connected to WiFi (Internet not available)")


MOBILE_CONNECTED("connected to mobile network")


OFFLINE("offline")


In addition it is able to detect situation when strength of the Wifi signal was changed with
WifiSignalStrengthChanged
event.

Usage

Add permissions to
AndroidManifest.xml
file.
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />

In your activity add
Bus
field from Otto Event Bus library and
NetworkEvents
field.
private Bus bus;private NetworkEvents networkEvents;

Initialize objects in
onCreate(Bundle savedInstanceState)
method.
@Overrideprotected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);
bus = new Bus();
networkEvents = new NetworkEvents(this, bus);
}

Register
Bus
and
NetworkEvents
in
onResume()
method and unregister them in
onPause()
method.
@Overrideprotected void onResume() {    super.onResume();
bus.register(this);
networkEvents.register();
}

@Overrideprotected void onPause() {    super.onPause();
bus.unregister(this);
networkEvents.unregister();
}

Subscribe for the events
@Subscribepublic void onConnectivityChanged(ConnectivityChanged event) {    // get connectivity status from event.getConnectivityStatus()
// and do whatever you want}

@Subscribepublic void onWifiSignalStrengthChanged(WifiSignalStrengthChanged event) {    // do whatever you want - e.g. read fresh list of access points}


Example

Look at MainActivity in exemplary application to see how this library works.
See GitHub : https://github.com/pwittchen/NetworkEvents
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Network Events​