Android周辺WIFIホットスポット取得

9067 ワード

実際の開発では常に周囲のWiFiのホットスポットを手に入れる必要がありますが、最近私もこのdemoを作って、みんなと一緒に分かち合いましょう.基本的には、まずWifiMangerがWiFiサービスを取得し、結果をArrayListに格納します.では、具体的な内容はコードを直接見ることができます.
MainActivity.java:
public class MainActivity extends AppCompatActivity {

    ArrayList<ScanResult> list;   //    wifi       
    WifiManager wifiManager;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        wifiManager = (WifiManager) getSystemService(WIFI_SERVICE);    //    wifi  
        list = (ArrayList<ScanResult>)wifiManager.getScanResults();
        sortByLevel(list);
        init();
    }

    private  void init(){
        TextView tv1=(TextView)findViewById(R.id.tv1);
        TextView tv2=(TextView)findViewById(R.id.tv2);
        TextView tv3=(TextView)findViewById(R.id.tv3);

        if (list.get(0).SSID != null && list.get(1).SSID != null){
            tv1.setText("     "+list.get(0).SSID);
            tv2.setText("     :"+list.get(1).SSID);
            tv3.setText("  "+list.size()+" wifi");
        }

    }

    //     wifi              
    private void sortByLevel(ArrayList<ScanResult> list) {
        for(int i=0;i<list.size();i++)
            for(int j=1;j<list.size();j++)
            {
                if(list.get(i).level<list.get(j).level)    //level      
                {
                    ScanResult temp = null;
                    temp = list.get(i);
                    list.set(i, list.get(j));
                    list.set(j, temp);
                }
            }
    }

}

レイアウトファイルactivity_main.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <TextView
        android:id="@+id/tv1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello World!" />
    <TextView
        android:id="@+id/tv2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello World!" />
    <TextView
        android:id="@+id/tv3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello World!" />
</LinearLayout>

はい、そうですね.