누군가가 Wi-Fi 액세스 포인트에 연결할 때 시작 및 중지, 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);
}
이 텐트 필터에 의해 호출이 메소드는 GET의 : 가장 좋은 방법은 시작 및 정지 시간을 기록 할 수 있도록
<intent-filter>
<action android:name="android.net.wifi.WifiManager.SUPPLICANT_CONNECTION_CHANGE_ACTION" >
</action>
</intent-filter>
그러나이 무엇입니까? 비효율적 인 wait()입니까?