所以有人問我爲他寫了一個應用程序,當他連接到WiFi接入點時,日誌開始和停止,bssid,本地ip,ssid和開始/停止時間。Android:等待一個行動
我這樣做的:
public void onReceive(Context context, Intent intent) {
ConnectivityManager connManager = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo mWifi = connManager
.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
TelephonyManager telephonyManager = (TelephonyManager)context.getSystemService(Context.TELEPHONY_SERVICE);
if (mWifi.isConnected()) {
WifiManager wifiManager = (WifiManager) context
.getSystemService(Context.WIFI_SERVICE);
android.net.wifi.WifiInfo wifiInfo = wifiManager
.getConnectionInfo();
SSID = wifiInfo.getSSID();
BSSID = wifiInfo.getBSSID();
localIp = getLocalIpAddress();
Log.d("WIFI SSID",SSID);
Log.d("WIFI MAC", BSSID);
Log.d("WIFI IP", localIp);
this.startDate = c.getTime();
}
while(mWifi.isConnected()){
try {
wait();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
this.stopDate = c.getTime();
db.insertWifiInfo(SSID, BSSID,telephonyManager.getDeviceId(), localIp, startDate, stopDate);
}
這種方法獲取的這個意圖過濾叫做:
<intent-filter>
<action android:name="android.net.wifi.WifiManager.SUPPLICANT_CONNECTION_CHANGE_ACTION" >
</action>
</intent-filter>
但是這是最好的辦法是能夠登錄啓動和停止的時間?等待()效率低下嗎?