3

ネットワークに接続して信号強度を監視する Android アプリを開発しています。つながり、強さを見ることはできましたが、能動的に「聞いて」強さを表示する方法がわかりません。これは私の監視方法です:

public void search(View v) {

        // Turn on wifi
        if (!wifi.isWifiEnabled()) {
            if (wifi.getWifiState() != WifiManager.WIFI_STATE_ENABLING) {
                wifi.setWifiEnabled(true);
            }
        }

        // Register the desired network
        int nId = wifi.addNetwork(netConfig);

        // create the BroadcastReciever
        if (wifiReciever == null) {
            wifiReciever = new BroadcastReceiver() {

                @Override
                public void onReceive(Context context, Intent intent) {
                    final String action = intent.getAction();
                    if (action
                            .equals(WifiManager.SUPPLICANT_CONNECTION_CHANGE_ACTION)) {
                        if (intent.getBooleanExtra(
                                WifiManager.EXTRA_SUPPLICANT_CONNECTED, false)) {
                            message.setText("Connected: "
                                    + wifi.getConnectionInfo().getRssi());
                        } else {
                            message.setText("Disconnected...");
                        }
                    } else if (action.equals(WifiManager.RSSI_CHANGED_ACTION)) {
                        message.setText("Connected: "
                                + wifi.getConnectionInfo().getRssi());
                    }
                }
            };
        }
        IntentFilter intentFilter = new IntentFilter();
        intentFilter.addAction(WifiManager.SUPPLICANT_CONNECTION_CHANGE_ACTION);
        intentFilter.addAction(WifiManager.RSSI_CHANGED_ACTION);
        registerReceiver(wifiReciever, intentFilter);

        // intentamos conectarnos
        wifi.enableNetwork(nId, true);

    }

このコードは時々機能しますが、強度を頻繁に更新するわけではありません。私がやりたいことをするためのAPIまたは他のメソッド/隠しAPIはありますか?

どんな助けでも素晴らしいでしょう!

4

1 に答える 1

1

Wifi 信号強度 (現在のネットワーク アクティビティや CPU 使用率など) は、センサーをポーリングせずにリッスンできる量ではありません。他の Wi-Fi 監視アプリは、ユーザー定義の間隔で単純にポーリングします。Wi-Fi信号の測定にはかなりの量のノイズと変動性があるため、変化するのを待つことはできません. 私が知る限り、その意図は信号強度が大幅に変化した場合にのみブロードキャストされるため、ライブ モニターには適していません。

于 2012-10-01T21:17:51.013 に答える