我想不斷檢查手機是否連接到特定的無線網絡。我當然想到了一個服務和網絡的SSID,但是如何?不斷檢查無線網絡變化
回答
你會想
<intent-filter>
<action android:name="android.net.wifi.WIFI_STATE_CHANGED"/>
<action android:name="android.net.wifi.STATE_CHANGE"/>
</intent-filter>
在您的接收器標籤。
或者,如果你想對更多的控制權,之前註冊廣播接收器設置這些:
final IntentFilter filters = new IntentFilter();
filters.addAction("android.net.wifi.WIFI_STATE_CHANGED");
filters.addAction("android.net.wifi.STATE_CHANGE");
super.registerReceiver(yourReceiver, filters);
WIFI_STATE_CHANGED
廣播意圖的行動表明的Wi-Fi已啓用,禁用,啓用,禁用或未知。一個額外的提供了這個狀態作爲一個int。如果可用,另一個額外提供以前的狀態。
STATE_CHANGE
廣播意圖的行動表明Wi-Fi連接的狀態已經改變。一個額外的提供了一個NetworkInfo對象形式的新狀態。如果新狀態爲「連接」,則額外的額外資源可以提供接入點的BSSID和WifiInfo。作爲一個字符串
此外,您還需要指定正確的權限:
<user-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<user-permission android:name="android.permission.ACCESS_WIFI_STATE" />
全部代碼:Download
AndroidManifest.xml中
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="17" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.example.temp.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<receiver android:name="com.example.temp.MyWiFiStateListener">
<intent-filter >
<action android:name="android.net.wifi.STATE_CHANGE"/>
</intent-filter>
</receiver>
</application>
MainActivity.java
package com.example.temp;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
}
廣播接收器:
package com.example.temp;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager;
import android.util.Log;
public class MyWiFiStateListener extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
String action = intent.getAction();
Log.d("TEMP", action);
if(action.equals(WifiManager.NETWORK_STATE_CHANGED_ACTION)){
NetworkInfo info = intent.getParcelableExtra(WifiManager.EXTRA_NETWORK_INFO);
if(info.getType() == ConnectivityManager.TYPE_WIFI){
WifiManager myWifiManager = (WifiManager)context.getSystemService(Context.WIFI_SERVICE);
WifiInfo wifiInfo = myWifiManager.getConnectionInfo();
Log.d("TEMP","BSSID :: " + wifiInfo.getBSSID() + "SSID :: " + wifiInfo.getSSID());
}
}
}
}
聽起來很不錯。我現在檢查一下。謝謝 – incredikid 2013-02-12 18:56:14
讓我知道,如果你需要整個解決方案。 – VendettaDroid 2013-02-12 18:57:07
好的我有點困惑。因此,如果我創建一個BroadcastReceiver並添加intent-filters,我將如何檢查BSSID? – incredikid 2013-02-12 19:27:50
- 1. 如何檢測網絡中的變化?
- 2. 在iPad上檢測wifi網絡變化
- 3. iOS API檢測無線網絡
- 4. iphone - 我如何檢查我是否連接到無線網絡
- 5. Android - 連接到指定的無線網絡和檢查SSID
- 6. 檢查我是否在範圍內我的無線網絡
- 7. 如何判斷手機是否連接到無線網絡或手機網絡?
- 8. Mod_Rewrite不斷變化的網址
- 9. ios檢測到無線變化
- 10. 模擬無線網絡OMNet ++
- 11. windows移動無線網絡
- 12. ubuntu:操縱無線網絡
- 13. 無線網絡c程序
- 14. 連接到無線網絡
- 15. 針對不斷變化的數據模型檢查報告
- 16. 如何檢測網絡斷開連接?
- 17. Android網絡檢查不可靠
- 18. 在無線網絡斷開之前做些事情
- 19. 使用python從無線網絡斷開連接(Windows)中
- 20. 是不斷變化
- 21. 不斷變化頁
- 22. 目標C不斷檢查變量值
- 23. 在Android中檢查網絡
- 24. Python - 檢查網絡圖
- 25. 檢查網絡連接
- 26. 檢查網絡連接iPhone
- 27. 檢查網絡可在android
- 28. 如何檢查從網絡
- 29. 強制Android使用無線網絡,無網絡
- 30. 網絡共享文件的快捷方式名稱不斷變化
「不斷檢查」?你知道會殺死多少電池嗎? [只需檢查一次](http://developer.android.com/training/monitoring-device-state/connectivity-monitoring.html)然後[註冊一個接收器來檢查連接性的變化](http:// stackoverflow。 COM /問題/ 3307237 /何燦的i-監視器的網絡連接狀態 - 在 - 機器人)。 – Eric 2013-02-12 18:48:35
有WiFi_STATE_CHANGED廣播。您可以使用該廣播來檢測WiFi網絡中的更改。 – VendettaDroid 2013-02-12 18:49:52
@尼克好吧你是對的我的意思是實際上每5分鐘。 – incredikid 2013-02-12 18:51:02