0

基本的に、SimpleAdapter を介して ListView に RSSI の値を一覧表示できます。

public class ActivityListarRedes extends MainActivity {


@TargetApi(Build.VERSION_CODES.ICE_CREAM_SANDWICH_MR1)
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.listar_redes);


    List<Map<String, String>> l = listaRedes();


    String[] from = { "ExampleId", "ExampleName" };
    int[] to = { android.R.id.text1, android.R.id.text2 };

    SimpleAdapter ad = new SimpleAdapter(this, l, simple_list_item_2, from, to);
    ListView lv = (ListView) findViewById(R.id.list);
    lv.setAdapter(ad);




}

public List<Map<String, String>> listaRedes() {

        networks = new ArrayList<ScanResult>();
        wifi.startScan();
        networks = wifi.getScanResults();

        List<Map<String, String>> l = new ArrayList<Map<String, String>>();

        for (ScanResult net : networks) {
            Map<String, String> m = new HashMap<String, String>();
            m.put("ExampleId", "Rede: " + net.SSID);
            m.put("ExampleName", "RSSI: " + net.level + "dBm");
            l.add(m);
        }
        return l;
    }

ここで、リストであるメソッド「listaRedes」によって与えられた RSSI の値を更新できるかどうかを知りたいと思います。一時停止するか、ボタンをクリックして一時停止するまで、しばらくの間「listaRedes」メソッドを呼び出すことができるかもしれません。

それは可能でしょうか?

ありがとう

4

1 に答える 1

0

更新: ここで、Android デバイスを使用した RF 測定のデモをご覧いただけます。

https://github.com/panosvas/Measurements

WiFi測定の実装を次々と見つけることができます。これらの測定値を保存するためのサーバーと、UDP パケットを使用するリモート トリガー アプリも作成しました。

https://github.com/panosvas/IndoorPositioningServer

リストを更新することができます。ここで私の答えを見ることができます:

20回スキャンするWifiスキャナー

ニーズに合わせて調整するために、カウンターは必要ありません。その代わりに、 onRecieve で startScan() メソッドを呼び出すタスクを再度トリガーします。

onDestroy でリスナーを登録解除することを忘れないでください。

お役に立てれば。

于 2014-11-27T11:18:52.727 に答える