程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> wifi-android 掃描了WiFi信號強度,如何將他們賦給數組?

wifi-android 掃描了WiFi信號強度,如何將他們賦給數組?

編輯:編程綜合問答
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的強度都一樣………………誰能教我怎麼改一下…………

最佳回答:


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

int strength = info.getRssi();
這不是獲得連接的wifi的信號強度麼?不是本來就是一個定死的數值麼?
ScanResult有一個方法getRssi可以後的掃描到的ap的信號強度,不知道這是不是你想要的?

DiggieMon
leafact
DiggieMon
DiggieMon
DiggieMon
leafact
DiggieMon
leafact
DiggieMon
DiggieMon
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved