2016-04-26 108 views
0

如何在一段时间内获取所有WiFi-Direct设备的名称,可以说3个小时,同时不断发送自己的名称。 全部由应用程序管理,此处的目标是获取您遇到的Wifi-Direct设备的所有名称。 这消耗了很多电池吗? THX ueen获取附近所有WiFi-Direct设备

+0

https://trivedihardik.wordpress.com/2012/08/31/android-wifi-direct-example/看看这个例子你会得到你的答案 –

+0

http://www.drjukka.com/blog/wordpress /这个博客有很多关于Wi-Fi Direct性能和电池使用情况的文章。还有一些更多的Wi-Fi Direct资源:https://groups.google.com/forum/#!topic/wi-fi-direct/uWpuOzHY6y0 – Brendan

回答

0

尝试像这个 -

public class WiFiDemo extends Activity implements OnClickListener 
{  
    WifiManager wifi;  
    ListView lv; 
    TextView textStatus; 
    Button buttonScan; 
    int size = 0; 
    List<ScanResult> results; 

    String ITEM_KEY = "key"; 
    ArrayList<HashMap<String, String>> arraylist = new ArrayList<HashMap<String, String>>(); 
    SimpleAdapter adapter; 

    /* Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     textStatus = (TextView) findViewById(R.id.textStatus); 
     buttonScan = (Button) findViewById(R.id.buttonScan); 
     buttonScan.setOnClickListener(this); 
     lv = (ListView)findViewById(R.id.list); 

     wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE); 
     if (wifi.isWifiEnabled() == false) 
     { 
      Toast.makeText(getApplicationContext(), "wifi is disabled..making it enabled", Toast.LENGTH_LONG).show(); 
      wifi.setWifiEnabled(true); 
     } 
     this.adapter = new SimpleAdapter(WiFiDemo.this, arraylist, R.layout.row, new String[] { ITEM_KEY }, new int[] { R.id.list_value }); 
     lv.setAdapter(this.adapter); 

     registerReceiver(new BroadcastReceiver() 
     { 
      @Override 
      public void onReceive(Context c, Intent intent) 
      { 
       results = wifi.getScanResults(); 
       size = results.size(); 
      } 
     }, new IntentFilter(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION));      
    } 

    public void onClick(View view) 
    { 
     arraylist.clear();   
     wifi.startScan(); 

     Toast.makeText(this, "Scanning...." + size, Toast.LENGTH_SHORT).show(); 
     try 
     { 
      size = size - 1; 
      while (size >= 0) 
      { 
       HashMap<String, String> item = new HashMap<String, String>();      
       item.put(ITEM_KEY, results.get(size).SSID + " " + results.get(size).capabilities); 

       arraylist.add(item); 
       size--; 
       adapter.notifyDataSetChanged();     
      } 
     } 
     catch (Exception e) 
     { }   
    }  
} 
+0

欧普问WIFI直接不是这个。以上回答不解决问题:) –

+0

哦,我的坏@ueen你可以使用此链接解决方案 - http://stackoverflow.com/q/17530885/842607 –

1

我想我的老测试应用程序会做的正是这一点,所以检查出的WifiTestPower

还做检查旧后(2015年夏天,我想)从my blog,有关于无线上网直接服务盲目设备的文章,以及耗电量谈话。