2014-01-08 66 views

回答

1

您可以訪問局域網ip並檢查是否server.like 192.168.0.0到192.168.0.255。如果你在使用中檢查IP,那麼你可以檢查它的端口。 Samba端口是445,因此您可以檢查是否有192.168.0.0:455可用,如果它可用,以便它是samba服務器。當你檢查0〜255時,你可以在局域網中搜索samba服務器。

0

複雜化: - /這裏是更好的解決方案:

private class NetworkUsers extends AsyncTask<String, String, String> { 
    @Override 
    protected void onPreExecute() { 
     // TODO Auto-generated method stub 
     // your code, thats runs before "doInBackground" action 
    } 

    @Override 
    protected void onPostExecute(String result) { 
     // your code, thats runs after "doInBackground" action 

     if(result != null){ 
      // handle "result" String 
     } else { 

     } 
    } 

    @Override 
    protected String doInBackground(String... params) { 
     SmbFile[] domains = null; 
     String result = null; 
     String url = params[0]; 
     SmbFile path = null; 
     try { 
      path = new SmbFile(url); 
      try { 
       if(path.exists()){ 
        result = ""; // set result variable to empty 
        domains = (new SmbFile(url)).listFiles(); 
        for (int i = 0; i < domains.length; i++) { 
         // here you can add custom validations 
         // for example if(domains[i].isHidden()){} | example if(domains[i].canRead()){} , etc. 
         result += domains[i].toString() + "\n"; 
        } 
       } 
      } catch (SmbException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 
     } catch (MalformedURLException e1) { 
      // TODO Auto-generated catch block 
      e1.printStackTrace(); 
     } 
     return result; 
    }  
} 

如何使用:

(new NetworkUsers()).execute("smb://"); 

名單設備的內容:

列表根上所有的網絡設備

(new NetworkUsers()).execute("smb://my-device/shared/"); //my-device is the network device name 
相關問題