本文介绍了怎么听连接到Android设备热点的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
下面是我已经用于创建Android的热点在code现在我想自动检测连接设备的IP
//切换WiFi热点或关闭
公共静态布尔configApState(上下文的背景下){ WifiManager wifimanager =(WifiManager)context.getSystemService(context.WIFI_SERVICE);
WifiConfiguration wificonfiguration = NULL;
尝试{ //如果WiFi是上,将其关闭
如果(isApOn(上下文)){
wifimanager.setWifiEnabled(假);
}
方法方法= wifimanager.getClass()实现getMethod(setWifiApEnabled,WifiConfiguration.class,boolean.class)。
method.invoke(wifimanager,wificonfiguration,isApOn(上下文)!);
返回true;
}
赶上(例外五){ e.printStackTrace();
}
返回false;
}
解决方案
您可以使用以下code得到conencted设备:
公共无效getListOfConnectedDevice(){
线程线程=新主题(新的Runnable(){ @覆盖
公共无效的run(){
BR的BufferedReader = NULL;
布尔isFirstLine = TRUE; 尝试{
BR =新的BufferedReader(新的FileReader(的/ proc /净/ ARP));
串线; 而((行= br.readLine())!= NULL){
如果(isFirstLine){
isFirstLine = FALSE;
继续;
} 串[]分裂= line.split(+); 如果(分裂= NULL&放大器;!&安培; splitted.length> = 4){ 串ip地址=分裂[0];
串MACADDRESS =分裂[3]; 布尔isReachable = InetAddress.getByName(
分裂[0])isReachable(500)。 //这是网络调用,所以我们不能做,关于UI线程,所以我把后台线程。
如果(isReachable){
Log.d(设备信息,ip地址+:
+ MACADDRESS);
} } } }赶上(例外五){
e.printStackTrace();
} {最后
尝试{
br.close();
}赶上(IOException异常五){
e.printStackTrace();
}
}
}
});
thread.start();
}
来源:
Here is the code that i had used to create hotspot in android now i want to detect the ip of devices connected to it
// toggle wifi hotspot on or off
public static boolean configApState(Context context) {
WifiManager wifimanager = (WifiManager) context.getSystemService(context.WIFI_SERVICE);
WifiConfiguration wificonfiguration = null;
try {
// if WiFi is on, turn it off
if(isApOn(context)) {
wifimanager.setWifiEnabled(false);
}
Method method = wifimanager.getClass().getMethod("setWifiApEnabled", WifiConfiguration.class, boolean.class);
method.invoke(wifimanager, wificonfiguration, !isApOn(context));
return true;
}
catch (Exception e) {
e.printStackTrace();
}
return false;
}
解决方案
You can get the conencted devices using the following code:
public void getListOfConnectedDevice() {
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
BufferedReader br = null;
boolean isFirstLine = true;
try {
br = new BufferedReader(new FileReader("/proc/net/arp"));
String line;
while ((line = br.readLine()) != null) {
if (isFirstLine) {
isFirstLine = false;
continue;
}
String[] splitted = line.split(" +");
if (splitted != null && splitted.length >= 4) {
String ipAddress = splitted[0];
String macAddress = splitted[3];
boolean isReachable = InetAddress.getByName(
splitted[0]).isReachable(500); // this is network call so we cant do that on UI thread, so i take background thread.
if (isReachable) {
Log.d("Device Information", ipAddress + " : "
+ macAddress);
}
}
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
});
thread.start();
}
source: link
这篇关于怎么听连接到Android设备热点的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!