我試圖通過偵聽代碼中下面顯示的「SUPPLICANT_CONNECTION_CHANGE_ACTION」來檢測WiFi是否連接。但問題是當我運行應用程序時,我收到了來自我註冊的廣播接收器的通知!broadCast接收器永遠不會被調用
爲什麼會發生這種情況,以及如何解決它?
代碼:
IntentFilter intentFilter2 = new IntentFilter(WifiManager.SUPPLICANT_CONNECTION_CHANGE_ACTION);
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ConnectivityModule();
}
protected void ConnectivityModule() {
// TODO Auto-generated method stub
Log.d(TAG, "@interNetConnectivityModule: called");
registerReceiver(SupplicantReceiver, intentFilter2);
}
BroadcastReceiver SupplicantReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
final String action = intent.getAction();
if (action.equals(WifiManager.SUPPLICANT_CONNECTION_CHANGE_ACTION)) {
SupplicantState supplicantState = (SupplicantState)intent.getParcelableExtra(WifiManager.EXTRA_NEW_STATE);
if (supplicantState == (SupplicantState.COMPLETED)) {
Log.d(TAG, "@SupplicantReceiver: connected");
}
if (supplicantState == (SupplicantState.DISCONNECTED)) {
Log.d(TAG, "@SupplicantReceiver: not connected");
}
}
}
};
在清單中設置的所有權限? – Opiatefuchs 2015-03-13 10:45:49
是設置了所有權限,並且在運行時,我在logcat中沒有收到任何錯誤 – rmaik 2015-03-13 10:52:01
您是否還在清單中註冊了接收器? – 2015-03-13 11:18:57