2016-04-26 111 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,有關於無線上網直接服務盲目設備的文章,以及耗電量談話。