有没有办法啊。
现在我的办法是访问/proc/net/arp,但是这个方法不是及时性的,偶尔有些设备已经连接,但是信息没有存在/proc/net/arp文件夹下,而Android手机 却可以发广播 提示 有一个新设备连接进来不知道android 系统是怎么做的。
现在我的办法是访问/proc/net/arp,但是这个方法不是及时性的,偶尔有些设备已经连接,但是信息没有存在/proc/net/arp文件夹下,而Android手机 却可以发广播 提示 有一个新设备连接进来不知道android 系统是怎么做的。
WifiInfo wifiInfo = wifiManager.getConnectionInfo();
Log.d("wifiInfo", wifiInfo.toString());
Log.d("SSID", wifiInfo.getSSID());
return wifiInfo.getSSID();
}
这个?
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
if(intent.getAction().equals(WifiManager.RSSI_CHANGED_ACTION)){
//signal strength changed
}
else if(intent.getAction().equals(WifiManager.WIFI_STATE_CHANGED_ACTION)){//wifi打开与否
int wifistate = intent.getIntExtra(WifiManager.EXTRA_WIFI_STATE, WifiManager.WIFI_STATE_DISABLED); if(wifistate == WifiManager.WIFI_STATE_DISABLED){
System.out.println("系统关闭wifi");
link_wifi.setText("WIFI未打开");
wifiState=0; }
else if(wifistate == WifiManager.WIFI_STATE_ENABLED){
System.out.println("系统开启wifi");
if(isWifiConnected()){
if(getConnectWifiSsid().equals("\"wifisocket\"")){
link_wifi.setText("已连接到服务器WIFI");
wifiState=3;
}else{
link_wifi.setText("WIFI已连接(非服务器)");
wifiState=4;
}
}else{
link_wifi.setText("WIFI已打开");
wifiState=1;
}
}
}
else if(intent.getAction().equals(WifiManager.NETWORK_STATE_CHANGED_ACTION)){//wifi连接上与否
System.out.println("网络状态改变");
NetworkInfo info = intent.getParcelableExtra(WifiManager.EXTRA_NETWORK_INFO);
if(info.getState().equals(NetworkInfo.State.DISCONNECTED)){
System.out.println("wifi网络连接断开");
link_wifi.setText("WIFI未连接");
wifiState=2;
}
else if(info.getState().equals(NetworkInfo.State.CONNECTED)){ WifiManager wifiManager = (WifiManager)context.getSystemService(Context.WIFI_SERVICE);
WifiInfo wifiInfo = wifiManager.getConnectionInfo(); //获取当前wifi名称
System.out.println("连接到网络 " + wifiInfo.getSSID());
if(wifiInfo.getSSID().equals("\"wifisocket\"")){
link_wifi.setText("已连接到服务器WIFI");
wifiState=3;
}else{
link_wifi.setText("WIFI已连接(非服务器)");
wifiState=4;
} } } }
};这是WIFI状态改变时的广播 比如 打开WiFi 连上WiFi 断开连接 关闭WiFi 都有广播:
在activity里注册广播
registerReceiver(wifiBroadcast, makeGattUpdateIntentFilter()); private static IntentFilter makeGattUpdateIntentFilter() {
final IntentFilter filter = new IntentFilter();
filter.addAction(WifiManager.RSSI_CHANGED_ACTION);
filter.addAction(WifiManager.NETWORK_STATE_CHANGED_ACTION);
filter.addAction(WifiManager.WIFI_STATE_CHANGED_ACTION);
return filter;
}