我在sand用java写了一个读取wifi密码的程序,该方法由主方法调用,运行没问题,效果也正常,

我在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(); 展开
 我来答
匿名用户
2017-08-25
展开全部
返回主方法重岩山新调用什么????主方法就是顺着执行啊,执行完你调用的类的方法,就毕胡回粗数中来顺着语句执行啊。。。
匿名用户
2017-07-20
展开全部
百度搜春岁索txt电子书烂高,直接移到内存卡里,或者自己用电脑建立Txt格式的电子书,然后把网上的文字复制到自己建立的Txt里,这样也是电扒历睁子书哦
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2017-08-18
展开全部
好像不行,可能会造成混乱,JVM不知道调用哪一个main函数了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2014-04-14
展开全部
为什么要使用双循环。第2个循环有点问题
更多追问追答
追问
每一个wifi都是以network开始,中间内容不同,外循环用来循环每一个network,内循环用来循环取内容,这里代码不全,字数上限了,后面有询问与输出。就是不知道为什么连续执行会卡死,主方法里每次调用完了都System.gc()了的
追答
boolean find=false;
while((s=dis.readLine())!=null){
    if(s.indexOf("bytes free")>-1){//特定的结束字符串退出
        break;
    }
    if(!find){
        System.out.println(s);
        if( s.indexOf("network")>-1){
            find=true;
        }
    }else{
        ch=new char[128];
        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++;
            find=false;
        }
    }
}
dos.writeBytes("exit\n");

试试这样

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式