【问题标题】:periodic wifi scan and export result to a txt file定期wifi扫描并将结果导出到txt文件
【发布时间】:2013-10-17 17:59:36
【问题描述】:

我想进行定期 wifi 扫描(可能每 5 分钟一次)并将结果导出到 txt 文件,以便显示接收到的 AP SSID 和 MAC 以及信号强度。 我对 Android 开发非常陌生,所以我只知道基础知识。 我目前的进度是在此thislink 中复制完全相同的步骤。

【问题讨论】:

  • 不一定是文本文件......只是用户可读的任何内容

标签: android android-wifi


【解决方案1】:

创建一个输出流和文件

private final static String STORETEXT="storetext.txt";
OutputStreamWriter out=
    new OutputStreamWriter(openFileOutput(STORETEXT, 0));

您可以像这样使用计时器和异步任务重复扫描 wifi 信号

WifiManager wManager = (WifiManager) getSystemService(Context.WIFI_SERVICE);// wifi manager

// timer task
    public void Asyncwifi() {
    whandler = new Handler();
    timer = new Timer();
    doAsynchronousTask = new TimerTask() {

    @Override
    public void run() {
    whandler.post(new Runnable() {
    public void run() {
    try {
         wifiScan wscan = new wifiScan();
         wscan.execute();
        }catch (Exception e) {}
          }
        });
        }
        };
        timer.schedule(doAsynchronousTask, 0, 5000); // Repeate in every 5 sec
    }


    // Async task - wifi scan
    public class wifiScan extends AsyncTask<Void, String, Void> {


        protected void onPreExecute() {

        }

        protected void onPostExecute(Void results) {

        }

        @Override
        protected Void doInBackground(Void... params) {
            registerReceiver(br, new IntentFilter(
                    WifiManager.SCAN_RESULTS_AVAILABLE_ACTION));
            wManager.startScan();
            return null;
        }
    }

您在 BroadcastReceiver 中得到了结果

   BroadcastReceiver br = new BroadcastReceiver() {
     @Override
    public void onReceive(Context c, Intent intent) {
     wifiList = wManager.getScanResults();
            for (int i = 0; i < wifiList.size(); i++) {
            sr1 = wManager.getScanResults().get(i);
            System.out.println("BSSID: " + sr1.BSSID);
            System.out.println("RSSI: " + sr1.level);

                String str = "BSSID: "+sr1.BSSID+" "+"Level: "+sr1.level;

// Write this data to file
          out.write(str.toString());

               }



        };

out.close();

【讨论】:

  • @Ahmed Salah 检查上面的答案,如果您觉得有任何困难,请发表评论。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-24
  • 2013-04-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多