我在sand用java写了一个读取wifi密码的程序,该方法由主方法调用,运行没问题,效果也正常,就是无法连续调用,就是如果调用一次就退出然后再运行就可以,如果用完了,再主方法里选择...
我在sand用java写了一个读取wifi密码的程序,该方法由主方法调用,运行没问题,效果也正常,就是无法连续调用,就是如果调用一次就退出然后再运行就可以,如果用完了,再主方法里选择再次调用就会出现卡死,很久并不停打印:输入有误,重新输入(代码里有该字符串) 代码如下: static public int readwifipw() { String s=null,name=null,pw=null,way=null; wifipw[] wp=new wifipw[64]; char[] ch; int i=0,j=0,k=0; try{ Process p=Runtime.getRuntime().exec("su"); DataOutputStream dos=new DataOutputStream(p.getOutputStream()); BufferedReader dis=new BufferedReader(new InputStreamReader(p.getInputStream())); dos.writeBytes("cat /data/misc/wifi/wpa_supplicant.conf\n"); dos.flush(); while(true){ s=new String(dis.readLine()); if(s.indexOf("network")!=-1) { while(true){ ch=new char[128]; s=new String(dis.readLine()); if(s.indexOf("ssid")!=-1) { j=s.indexOf("\""); k=s.indexOf("\"",j+1); if((j!=-1)&&(k!=-1)) { s.getChars(j+1,k,ch,0); name=new String(ch); } } else if(s.indexOf("psk")!=-1) { j=s.indexOf("\""); k=s.indexOf("\"",j+1); s.getChars(j+1,k,ch,0); pw=new String(ch); } else if(s.indexOf("key")!=-1) { j=s.indexOf("="); s.getChars(j+1,s.length(),ch,0); way=new String(ch); wp[i]=new wifipw(name,pw,way); i++; break; } else continue; } } if(!dis.ready()) break; } dos.writeBytes("exit\n"); dos.flush(); dos.close();
展开