我测试了一些 Action (见下文)。
ConnectivityManager.CONNECTIVITY_ACTION
WifiManager.NETWORK_STATE_CHANGED_ACTION
PhoneStateListener.LISTEN_DATA_CONNECTION_STATE (it is not actually action)
PhoneStateListener.LISTEN_DATA_CONNECTION_STATE (it is not actually action)
但他们只听状态(连接或断开连接)。
wifi断开时,可以监听(开启移动数据->连接->广播->监听)
wifi连上后无法监听(开启移动数据->连接性不变!)
我需要移动数据设置是否启用
我可以监听移动数据启用或禁用事件吗?
最佳答案
虽然系统没有为此进行广播,但我们实际上可以使用 ContentObserver 来获取用户切换移动数据设置的通知。
例如:
ContentObserver mObserver = new ContentObserver(new Handler()) {
@Override
public void onChange(boolean selfChange, Uri uri) {
// Retrieve mobile data value here and perform necessary actions
}
};
...
Uri mobileDataSettingUri = Settings.Secure.getUriFor("mobile_data");
getApplicationContext()
.getContentResolver()
.registerContentObserver(mobileDataSettingUri, true,
observer);
不要忘记适当注销观察者!例如
getContentResolver().unregisterContentObserver(mObserver);
关于android - 启用/禁用移动数据的监听器(未连接或断开连接),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21896752/