我正在使用此代码激活网络共享模式:
private void setWifiTetheringEnabled(boolean enable) {
WifiManager wifiManager = (WifiManager) getSystemService(WIFI_SERVICE);
Method[] methods = wifiManager.getClass().getDeclaredMethods();
for (Method method : methods) {
Log.e("teste", method.getName());
if (method.getName().equals("setWifiApEnabled")) {
try {
method.invoke(wifiManager, null, enable);
} catch (Exception ex) {
}
break;
}
}
}
我正在使用此代码连接设备(并读取信息)
br = new BufferedReader(new FileReader("/proc/net/arp"));
但是在这个文件 (/proc/net/arp) 中只有连接的设备,我想获得一些关于刚刚在网络共享模式下扫描我手机的设备的信息(Mac 地址)。
执行 ntcfg 我的返回:
04-10 10:32:27.908: E/test(18908): dummy0 DOWN 0.0.0.0/0 0x00000082 xx:xx:b6:69:37:4e
04-10 10:32:27.908: E/test(18908): wlan0 UP 192.168.43.1/24 0x00001043 xx:xx:11:f9:a9:45
04-10 10:32:27.908: E/test(18908): rmnet_usb0 UP 100.107.189.66/30 0x00000041 00:00:00:00:00:00
04-10 10:32:27.908: E/test(18908): rmnet_usb1 DOWN 0.0.0.0/0 0x00000000 00:00:00:00:00:00
04-10 10:32:27.908: E/test(18908): rmnet_usb2 DOWN 0.0.0.0/0 0x00000000 00:00:00:00:00:00
04-10 10:32:27.908: E/test(18908): rmnet_usb3 DOWN 0.0.0.0/0 0x00000000 00:00:00:00:00:00
04-10 10:32:27.908: E/test(18908): lo UP 127.0.0.1/8 0x00000049 00:00:00:00:00:00
04-10 10:32:27.908: E/test(18908): sit0 DOWN 0.0.0.0/0 0x00000080 00:00:00:00:00:00
04-10 10:32:27.908: E/test(18908): rmnet_smux0 DOWN 0.0.0.0/0 0x00001002 xx:6f:06:64:e2:61
04-10 10:32:27.908: E/test(18908): rmnet0 DOWN 0.0.0.0/0 0x00001002 xx:xx:a4:fe:a4:e5
04-10 10:32:27.908: E/test(18908): rmnet1 DOWN 0.0.0.0/0 0x00001002 xx:x:68:34:70:29
04-10 10:32:27.908: E/test(18908): rmnet2 DOWN 0.0.0.0/0 0x00001002 xx:xx:ac:a5:b3:a1
04-10 10:32:27.908: E/test(18908): rmnet3 DOWN 0.0.0.0/0 0x00001002 xx:xx:1b:af:02:fe
04-10 10:32:27.908: E/test(18908): rmnet4 DOWN 0.0.0.0/0 0x00001002 xx:xx:32:79:22:e7
04-10 10:32:27.908: E/test(18908): rmnet5 DOWN 0.0.0.0/0 0x00001002 xx:xx:9b:4c:93:c5
04-10 10:32:27.908: E/test(18908): rmnet6 DOWN 0.0.0.0/0 0x00001002 xx:xx:1a:1e:86:e8
04-10 10:32:27.908: E/test(18908): rmnet7 DOWN 0.0.0.0/0 0x00001002 xx:xx:46:f0:c5:48
04-10 10:32:27.908: E/test(18908): rev_rmnet2 DOWN 0.0.0.0/0 0x00001002 xx:xx:98:22:6f:fb
04-10 10:32:27.908: E/test(18908): rev_rmnet3 DOWN 0.0.0.0/0 0x00001002 xx:xx:8d:bf:3e:50
04-10 10:32:27.908: E/test(18908): rev_rmnet4 DOWN 0.0.0.0/0 0x00001002 xx:xx:f4:c0:81:ae
04-10 10:32:27.908: E/test(18908): rev_rmnet5 DOWN 0.0.0.0/0 0x00001002 xx:xx:29:94:d5:e5
04-10 10:32:27.908: E/test(18908): rev_rmnet6 DOWN 0.0.0.0/0 0x00001002 xx:xx:41:39:44:db
04-10 10:32:27.908: E/test(18908): rev_rmnet7 DOWN 0.0.0.0/0 0x00001002 xx:xx:4b:0b:13:18
04-10 10:32:27.908: E/test(18908): rev_rmnet8 DOWN 0.0.0.0/0 0x00001002 xx:xx:64:4f:b4:f6
04-10 10:32:27.908: E/test(18908): rev_rmnet0 DOWN 0.0.0.0/0 0x00001002 xx:xx:f4:d2:ae:66
04-10 10:32:27.908: E/test(18908): rev_rmnet1 DOWN 0.0.0.0/0 0x00001002 xx:xx:8d:f0:64:2a
最佳答案
调用exec("netcfg");
/**
* Execute a command in a shell
*
* @param command
* command to execute
* @return the return of the command
*/
public String exec(String command) {
String retour = "";
try {
Runtime runtime = Runtime.getRuntime();
Process p = runtime.exec(command);
java.io.BufferedReader standardIn = new java.io.BufferedReader(
new java.io.InputStreamReader(p.getInputStream()));
java.io.BufferedReader errorIn = new java.io.BufferedReader(
new java.io.InputStreamReader(p.getErrorStream()));
String line = "";
while ((line = standardIn.readLine()) != null) {
retour += line + "\n";
}
while ((line = errorIn.readLine()) != null) {
retour += line + "\n";
}
} catch (java.io.IOException e) {
e.printStackTrace();
}
return retour;
}
它将在 shell 中执行“netcfg”命令并产生如下输出
lo UP 127.0.0.1/8 0x00000049 00:00:00:00:00:00
sit0 DOWN 0.0.0.0/0 0x00000080 00:00:00:00:00:00
eth0 UP 0.0.0.0/0 0x00001003 78:c5:e5:a2:b2:d0
wlan0 DOWN 0.0.0.0/0 0x00001002 64:70:02:20:79:31
包括连接的网络接口(interface)、状态、获得的IP和MAC地址。
最后一个字段是 MAC 地址。您必须从这个字符串中解析 MAC 地址。
关于android - 获取未连接的设备,当我的设备处于网络共享模式时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29399641/
我有一个模型:classItem项目有一个属性“商店”基于存储的值,我希望Item对象对特定方法具有不同的行为。Rails中是否有针对此的通用设计模式?如果方法中没有大的if-else语句,这是如何干净利落地完成的? 最佳答案 通常通过Single-TableInheritance. 关于ruby-on-rails-Rails-子类化模型的设计模式是什么?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.co
我主要使用Ruby来执行此操作,但到目前为止我的攻击计划如下:使用gemsrdf、rdf-rdfa和rdf-microdata或mida来解析给定任何URI的数据。我认为最好映射到像schema.org这样的统一模式,例如使用这个yaml文件,它试图描述数据词汇表和opengraph到schema.org之间的转换:#SchemaXtoschema.orgconversion#data-vocabularyDV:name:namestreet-address:streetAddressregion:addressRegionlocality:addressLocalityphoto:i
鉴于我有以下迁移:Sequel.migrationdoupdoalter_table:usersdoadd_column:is_admin,:default=>falseend#SequelrunsaDESCRIBEtablestatement,whenthemodelisloaded.#Atthispoint,itdoesnotknowthatusershaveais_adminflag.#Soitfails.@user=User.find(:email=>"admin@fancy-startup.example")@user.is_admin=true@user.save!ende
我正在使用Sequel构建一个愿望list系统。我有一个wishlists和itemstable和一个items_wishlists连接表(该名称是续集选择的名称)。items_wishlists表还有一个用于facebookid的额外列(因此我可以存储opengraph操作),这是一个NOTNULL列。我还有Wishlist和Item具有续集many_to_many关联的模型已建立。Wishlist类也有:selectmany_to_many关联的选项设置为select:[:items.*,:items_wishlists__facebook_action_id].有没有一种方法可以
我正在编写一个gem,我必须在其中fork两个启动两个webrick服务器的进程。我想通过基类的类方法启动这个服务器,因为应该只有这两个服务器在运行,而不是多个。在运行时,我想调用这两个服务器上的一些方法来更改变量。我的问题是,我无法通过基类的类方法访问fork的实例变量。此外,我不能在我的基类中使用线程,因为在幕后我正在使用另一个不是线程安全的库。所以我必须将每个服务器派生到它自己的进程。我用类变量试过了,比如@@server。但是当我试图通过基类访问这个变量时,它是nil。我读到在Ruby中不可能在分支之间共享类变量,对吗?那么,还有其他解决办法吗?我考虑过使用单例,但我不确定这是
我是一个Rails初学者,但我想从我的RailsView(html.haml文件)中查看Ruby变量的内容。我试图在ruby中打印出变量(认为它会在终端中出现),但没有得到任何结果。有什么建议吗?我知道Rails调试器,但更喜欢使用inspect来打印我的变量。 最佳答案 您可以在View中使用puts方法将信息输出到服务器控制台。您应该能够在View中的任何位置使用Haml执行以下操作:-puts@my_variable.inspect 关于ruby-on-rails-如何在我的R
我使用的是Firefox版本36.0.1和Selenium-Webdrivergem版本2.45.0。我能够创建Firefox实例,但无法使用脚本继续进行进一步的操作无法在60秒内获得稳定的Firefox连接(127.0.0.1:7055)错误。有人能帮帮我吗? 最佳答案 我遇到了同样的问题。降级到firefoxv33后一切正常。您可以找到旧版本here 关于ruby-无法在60秒内获得稳定的Firefox连接(127.0.0.1:7055),我们在StackOverflow上找到一个类
有没有办法在这个简单的get方法中添加超时选项?我正在使用法拉第3.3。Faraday.get(url)四处寻找,我只能先发起连接后应用超时选项,然后应用超时选项。或者有什么简单的方法?这就是我现在正在做的:conn=Faraday.newresponse=conn.getdo|req|req.urlurlreq.options.timeout=2#2secondsend 最佳答案 试试这个:conn=Faraday.newdo|conn|conn.options.timeout=20endresponse=conn.get(url
我有一个存储主机名的Ruby数组server_names。如果我打印出来,它看起来像这样:["hostname.abc.com","hostname2.abc.com","hostname3.abc.com"]相当标准。我想要做的是获取这些服务器的IP(可能将它们存储在另一个变量中)。看起来IPSocket类可以做到这一点,但我不确定如何使用IPSocket类遍历它。如果它只是尝试像这样打印出IP:server_names.eachdo|name|IPSocket::getaddress(name)pnameend它提示我没有提供服务器名称。这是语法问题还是我没有正确使用类?输出:ge
我想获取模块中定义的所有常量的值:moduleLettersA='apple'.freezeB='boy'.freezeendconstants给了我常量的名字:Letters.constants(false)#=>[:A,:B]如何获取它们的值的数组,即["apple","boy"]? 最佳答案 为了做到这一点,请使用mapLetters.constants(false).map&Letters.method(:const_get)这将返回["a","b"]第二种方式:Letters.constants(false).map{|c