【发布时间】:2015-05-13 05:30:22
【问题描述】:
我有一个在主线程上运行而不是在后台运行的服务。在服务中,我正在通过广播接收器检查网络连接。当我在“设置”中启用启用限制数据时,broadcastreciver 可以很好地捕捉意图,但我的应用程序禁用了互联网连接(移动数据),尽管它在我的设备上。我见过this question 和android docs。
intentFilter.addAction("android.net.conn.ACTION_BACKGROUND_DATA_SETTING_CHANGED");
intentFilter.addAction("android.net.conn.CONNECTIVITY_CHANGE");
registerReceiver(this.connectionStatusReceiver, intentFilter);
private BroadcastReceiver connectionStatusReceiver = new BroadcastReceiver() {
@Override
public synchronized void onReceive(Context context, Intent intent) {
log.info("connection state changed");
checkConnectionState();
}
};
getActiveNetworkInfo() - *will always display CONNECTED when i switch on *restriction**
还有一件事,当我打开后台数据限制时,我检查了intent.getAction。它总是返回android.net.conn.CONNECTIVITY_CHANGE。
如何查看后台限制数据是否开启/关闭?
【问题讨论】:
-
我怎样才能知道用户是否在我的应用程序的设置中打开了后台数据限制?
标签: android broadcastreceiver restriction