Use*_*337 6 android broadcastreceiver network-connection android-broadcast
我已经注册到ConnectivityManager.CONNECTIVITY_ACTIONBroadcastReceiver,用于接收网络状态事件,但是onReceive当我打开或关闭我的wifi连接时,我的功能没有被调用.
正如文档中所提到的,这是一个粘滞广播接收器,当我们注册它时会被触发.
但是onReceive当我注册这个接收器时,我的功能中没有任何事件,可能是什么原因?
在我的清单文件中,我拥有访问Internet /网络/ Wifi连接及其状态的所有权限.
我正在使用以下代码注册此意图:
registerReceiver(mNetworkStateReceiver, new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION));
Run Code Online (Sandbox Code Playgroud)
在我的Logcat中,我得到以下错误消息寄存器:
01-01 00:05:29.804: ERROR/WifiHW(1305): Unable to open connection to supplicant on "/data/system/wpa_supplicant/wlan0": Connection refused
Run Code Online (Sandbox Code Playgroud)
可能是什么原因?有没有办法找出BroadcastReceiver是否正确注册?
谢谢.
这对我有用:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<receiver android:name=".receiver.ConnectivityReceiver">
<intent-filter>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
</intent-filter>
</receiver>
Run Code Online (Sandbox Code Playgroud)
代码:
public class ConnectivityReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Log.d(ConnectivityReceiver.class.getSimpleName(), "action: "
+ intent.getAction());
}
}
Run Code Online (Sandbox Code Playgroud)
并且不要忘记注册所有网络权限。
| 归档时间: |
|
| 查看次数: |
3962 次 |
| 最近记录: |