我正在嘗試使用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