我正在尝试使用broadcastreceiver来捕获网络更改,但它似乎根本没有工作。Android广播接收器不工作?
我的广播接收器:
public class btReceiver extends BroadcastReceiver {
public btReceiver() {
}
@Override
public void onReceive(Context context, Intent intent)
{
Log.d("BB","Received!");
Toast.makeText(context, "Action: " + intent.getAction(), Toast.LENGTH_LONG);
}
}
我把它的方式:
IntentFilter filter = new IntentFilter();
filter.addAction(getPackageName() + "android.net.conn.CONNECTIVITY_CHANGE");
btReceiver myReceiver = new btReceiver();
registerReceiver(myReceiver, filter);
但是当我尝试切换,让我们说的WiFi,没有任何反应都没有。我也尝试在清单中声明如下:
<receiver android:name=".btReceiver" android:enabled="true" >
<intent-filter>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
</intent-filter>
</receiver>
但这也行不通。
我宣布我的表现足够的权限:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
我的测试设备运行的是Android 7.1.1,没有人知道它为什么不触发?
这是真的,虽然他以编程方式注册'BroadcastReceiver',这是合法的。他可能会将接收器添加到清单中以使其工作,这是毫无意义的,因为它试图拦截错误的“Intent”动作 – quiro