Android library listening network events.
2015-01-22 09:48
786 查看
Overview
It is able to detectConnectivityStatuswhen 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
WifiSignalStrengthChangedevent.
Usage
Add permissions toAndroidManifest.xmlfile.
<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
Busfield from Otto Event Bus library and
NetworkEventsfield.
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
Busand
NetworkEventsin
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
相关文章推荐
- RadiusNetwork iBeacon Library For Android 设备发现过程梳理
- Transmitting Network Data Using Volley - Volley is an HTTP library that makes networking for Android
- AndroidAnnotations——Listening to AdapterViewEvents监听适配器视图事件
- AndroidAnnotations——Listening to AdapterViewEvents监听适配器视图事件
- Android问题集锦之二:关于模拟器 Installation error: INSTALL_FAILED_MISSING_SHARED_LIBRARY的 错误问题
- WSAEnumNetworkEvents()
- sybase连接问题:ct_connect(): network packet layer: internal net library error: Net-Lib protocol driver call to connect two endpoints
- does not declare uses-library android.test.runner
- android extension library
- Delphi使用BDE连接远程MS SQL SERVER 2000数据库时出现“Db-library network communciations layer not loaded.”错误的解决方法
- Android_文档学习_UI_Handling UI Events
- 解决Android library projects cannot be launched问题
- Android 小项目之--数据存储【Network】(附源码)
- 如何移植library到Android(二)
- 【Android】数据存储之Network
- 如何移植library到android
- Android 小项目之--数据存储【Network】(附源码)
- How to port native (C/C++) library into android.
- Android 数据存储【Network】--webservice
- 【Android】数据存储之Network