DiggieMon 2015-03-27 05:44 采纳率: 100%
浏览 2379
已采纳

android 扫描了WiFi信号强度,如何将他们赋给数组?

Handler handler = new Handler() {

public void handleMessage(Message msg) {

if (msg.what == 1) {

String wserviceName = Context.WIFI_SERVICE;

WifiManager wm = (WifiManager) getSystemService(wserviceName);

            WifiInfo info = wm.getConnectionInfo();     
            int strength = info.getRssi();  
            int speed = info.getLinkSpeed();    
            String units = WifiInfo.LINK_SPEED_UNITS;    
            String ssid = info.getSSID();    

            tv  = (TextView) findViewById(R.id.textView1);  

            List<ScanResult> results = wm.getScanResults();  
            String otherwifi = "检测到AP点: \n\n";  


            int[] ap;
            ap = new int[10];
            for (ScanResult result : results) {
                if(result.SSID.equals("9#729"))
                {
                    //apname.append(result.SSID + "");
                    ap[0]=result.level*(-1);
                    d0=(float) (0.02*(java.lang.Math.pow(2.71828,(strength*-0.1))));
                }
                if(result.SSID.equals("YHY"))
                {
                    //apname.append(result.SSID + "");
                    ap[1]=result.level*(-1);
                    d1=(float) (0.02*(java.lang.Math.pow(2.71828,(strength*-0.1))));
                }
                if(result.SSID.equals("9#731"))
                {
                    //apname.append(result.SSID + "");
                    ap[2]=result.level*(-1);
                    d2=(float) (0.02*(java.lang.Math.pow(2.71828,(strength*-0.1))));
                }
                if(result.SSID.equals("TP-LINK_366388"))
                {
                    //apname.append(result.SSID + "");
                    ap[3]=result.level*(-1);
                    d3=(float) (0.02*(java.lang.Math.pow(2.71828,(strength*-0.1))));
                }

                //otherwifi += result.SSID  + ":  " + result.level*(-1) + "\n";  
                float A[][] = {{-7,0},{-7,12},{0,12}};
            float b[] = {(float) (java.lang.Math.pow(d3,2)-java.lang.Math.pow(d0,2)-12.25),
                    (float) ((java.lang.Math.pow(d3,2)-java.lang.Math.pow(d1,2)-10000)+23.75),
                    (float) ((java.lang.Math.pow(d3,2)-java.lang.Math.pow(d2,2)-10000)+36)};

           //float At[][] ={{-200,-200,0},{0,400,400}}; 
           float AtA1At[][] = {{(float) -0.095,(float) -0.048,(float) 0.048},
                               {(float) -0.028,(float) 0.028,(float) 0.056}};
           float zuobiao[] = {(float) ((-0.095*(java.lang.Math.pow(d3,2)-java.lang.Math.pow(d0,2)-12.25))+(-.048*((java.lang.Math.pow(d3,2)-java.lang.Math.pow(d1,2))+23.75))+(0.048*((java.lang.Math.pow(d3,2)-java.lang.Math.pow(d2,2))+36))),
                                       (float) ((-0.028*(java.lang.Math.pow(d3,2)-java.lang.Math.pow(d0,2)-12.25))+(0.028*((java.lang.Math.pow(d3,2)-java.lang.Math.pow(d1,2))+23.75)+(0.056*((java.lang.Math.pow(d3,2)-java.lang.Math.pow(d2,2))+36))))};

            otherwifi = "你现在的位置:\n\n"+"("+(int) ((-0.095*(java.lang.Math.pow(d3,2)-java.lang.Math.pow(d0,2)-12.25))+(-.048*((java.lang.Math.pow(d3,2)-java.lang.Math.pow(d1,2))+23.75))+(0.048*((java.lang.Math.pow(d3,2)-java.lang.Math.pow(d2,2))+36)))
                            +","+
                            (int) ((-0.028*(java.lang.Math.pow(d3,2)-java.lang.Math.pow(d0,2)-12.25))+(0.028*((java.lang.Math.pow(d3,2)-java.lang.Math.pow(d1,2))+23.75)+(0.056*((java.lang.Math.pow(d3,2)-java.lang.Math.pow(d2,2))+36))))
                            +")"+"\n\n"+d0+"\n\n"+d1+"\n\n"+d2+"\n\n"+d3+"\n\n";


            }
           //  double y =java.lang.StrictMath.pow(strength*-1,1.0/n);
            //+ " at " + String.valueOf(speed) + "   " + String.valueOf(units)
            //String text = "[现在连接到] " + ssid  + ". 强度 : " + ((strength)+200) + "\n\n" + "[距离AP点大致距离]:\n"+ 0.02*(java.lang.Math.pow(2.71828,(strength*-0.1)))+"米";  
            //otherwifi += "\n\n";  
            //otherwifi += text;  

            tv.setText(otherwifi);  
        }  
        super.handleMessage(msg);  
    };  
};




    我就想问,那个strength变量,第一个if判断成功后,他的值就不变了,导致后面几个wifi的强度都一样………………谁能教我怎么改一下…………
  • 写回答

4条回答

  • Leafact 2015-03-27 05:59
    关注

    没大看懂,不是很理解你的意思,
    WifiInfo info = wm.getConnectionInfo();

    int strength = info.getRssi();
    这不是获得连接的wifi的信号强度么?不是本来就是一个定死的数值么?
    ScanResult有一个方法getRssi可以后的扫描到的ap的信号强度,不知道这是不是你想要的?

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 用windows做服务的同志有吗
  • ¥60 求一个简单的网页(标签-安全|关键词-上传)
  • ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图