2013-03-24 27 views
0

我正在開發一個Android應用程序,其中包含一個名爲userFunctions的類。
所有它的功能使用一種稱爲getIP()函數定義IP地址的使用方法:一勞永逸初始化一個變量

public class UserFunctions { 

    private JSONParser jsonParser; 

    private static String loginURL = "/android_login_api/"; 
    private static String mplayerURL = "/android_mplayer_api/"; 
    private static String registerURL = "/android_login_api/"; 

    private static String login_tag = "login"; 
    private static String register_tag = "register"; 
    private static String delete_tag = "delete"; 
    private static String update_tag = "update"; 
    private static String music_tag = "music"; 
    private static String getusers_tag = "getusers"; 


    // constructor 
    public UserFunctions(){ 
     jsonParser = new JSONParser(); 
    } 

    public String getIP(){ 
     if(isConnectedToServer("192.168.1.2", 500)==false) 
     { 
      if(isConnectedToServer("www.google.com", 500)==true) 
      { 
       ReadEmails re = new ReadEmails(); 
       return re.processMail(); 
      } 
     } 
     return "192.168.1.2"; 
    } 



    /** 
    * function make Login Request 
    * @param email 
    * @param password 
    * */ 
    public JSONObject loginUser(String email, String password){ 
     // Building Parameters 
     List<NameValuePair> params = new ArrayList<NameValuePair>(); 
     params.add(new BasicNameValuePair("tag", login_tag)); 
     params.add(new BasicNameValuePair("email", email)); 
     params.add(new BasicNameValuePair("password", password)); 
     JSONObject json = jsonParser.getJSONFromUrl("http://"+this.getIP()+loginURL, params); 
     // return json 
     Log.i("JSON", json.toString()); 
     return json; 
    } 
    public JSONObject deleteUser(String email){ 
     // Building Parameters 
     List<NameValuePair> params = new ArrayList<NameValuePair>(); 
     params.add(new BasicNameValuePair("tag", delete_tag)); 
     params.add(new BasicNameValuePair("email", email)); 
     JSONObject json = jsonParser.getJSONFromUrl("http://"+this.getIP()+loginURL, params); 
     // return json 
     Log.i("JSON", json.toString()); 
     return json; 
    } 

    public JSONObject updateUser(String email, String field, String value){ 
     // Building Parameters 
     List<NameValuePair> params = new ArrayList<NameValuePair>(); 
     params.add(new BasicNameValuePair("tag", update_tag)); 
     params.add(new BasicNameValuePair("email", email)); 
     params.add(new BasicNameValuePair("field", field)); 
     params.add(new BasicNameValuePair("value", value)); 
     JSONObject json = jsonParser.getJSONFromUrl("http://"+this.getIP()+loginURL, params); 
     // return json 
     Log.i("JSON", json.toString()); 
     return json; 
    } 



    public boolean isConnectedToServer(String url, int timeout) { 
     try{ 
      URL myUrl = new URL(url); 
      URLConnection connection = myUrl.openConnection(); 
      connection.setConnectTimeout(timeout); 
      connection.connect(); 
      return true; 
     } catch (Exception e) { 
      // Handle your exceptions 
      return false; 
     } 
    } 

    /** 
    * function make Login Request 
    * @param name 
    * @param email 
    * @param password 
    * */ 
    public JSONObject registerUser(String name, String email, String mode, String password){ 
     // Building Parameters 
     List<NameValuePair> params = new ArrayList<NameValuePair>(); 
     params.add(new BasicNameValuePair("tag", register_tag)); 
     params.add(new BasicNameValuePair("name", name)); 
     params.add(new BasicNameValuePair("email", email)); 
     params.add(new BasicNameValuePair("mode", mode)); 
     params.add(new BasicNameValuePair("password", password)); 

     // getting JSON Object 
     JSONObject json = jsonParser.getJSONFromUrl("http://"+this.getIP()+registerURL, params); 
     // return json 
     return json; 
    } 






    public JSONObject PlayMusic(String name){ 
     // Building Parameters 
     List<NameValuePair> params = new ArrayList<NameValuePair>(); 
     params.add(new BasicNameValuePair("tag", "play")); 
     params.add(new BasicNameValuePair("name", name)); 
     // getting JSON Object 
     JSONObject json = jsonParser.getJSONFromUrl("http://"+this.getIP()+mplayerURL, params); 
     // return json 
     return json; 
    } 

    public JSONObject ChangeVol(String volume){ 
     // Building Parameters 
     List<NameValuePair> params = new ArrayList<NameValuePair>(); 
     params.add(new BasicNameValuePair("tag", "volume")); 
     params.add(new BasicNameValuePair("volume", volume)); 
     // getting JSON Object 
     JSONObject json = jsonParser.getJSONFromUrl("http://"+this.getIP()+mplayerURL, params); 
     // return json 
     return json; 
    } 

    public JSONObject StopMusic(){ 
     // Building Parameters 
     List<NameValuePair> params = new ArrayList<NameValuePair>(); 
     params.add(new BasicNameValuePair("tag", "stop")); 
     // getting JSON Object 
     JSONObject json = jsonParser.getJSONFromUrl("http://"+this.getIP()+mplayerURL, params); 
     // return json 
     return json; 
    } 


    public JSONObject ParcourirMusic(){ 
     // Building Parameters 
     List<NameValuePair> params = new ArrayList<NameValuePair>(); 
     params.add(new BasicNameValuePair("tag", "parcourir")); 
     // getting JSON Object 
     JSONObject json = jsonParser.getJSONFromUrl("http://"+this.getIP()+mplayerURL, params); 
     // return json 
     return json; 
    } 


    /** 
    * Function get Login status 
    * */ 
    public boolean isUserLoggedIn(Context context){ 
     DatabaseHandler db = new DatabaseHandler(context); 
     int count = db.getRowCount(); 
     if(count > 0){ 
      // user logged in 
      return true; 
     } 
     return false; 
    } 

    /** 
    * Function to logout user 
    * Reset Database 
    * */ 
    public boolean logoutUser(Context context){ 
     DatabaseHandler db = new DatabaseHandler(context); 
     db.resetTables(); 
     return true; 
    } 




    public void ReadMail(){ 

    try{ 
    Properties props = System.getProperties(); 
    props.setProperty("mail.store.protocol", "imaps"); 
    Session session = Session.getDefaultInstance(props, null); 
    Store store = session.getStore("imaps"); 
    store.connect("imap.gmail.com", "[email protected]", "Rambo_007"); 
    Folder inbox = store.getFolder("Inbox"); 
    inbox.open(Folder.READ_ONLY); 


    SearchTerm term = new SearchTerm() { 
     @Override 
     public boolean match(Message mess) { 
     try { 
      return mess.getContent().toString().toLowerCase().indexOf("boston") != -1; 
     } catch (IOException ex) { 
     // Logger.getLogger(JavaMailTest.class.getName()).log(Level.SEVERE, null, ex); 
     } catch (MessagingException ex) { 
     // Logger.getLogger(JavaMailTest.class.getName()).log(Level.SEVERE, null, ex); 
     } 
     return false; 
     } 
    }; 

    Message[] searchResults = inbox.search(term); 
    for(Message m:searchResults){ 
     Log.e("mail",m.getFrom()[0].toString()); 
     System.out.println("MATCHED: " + m.getFrom()[0]); 

    } 
    } catch (Exception e) { 

    } 

    } 

} 

我幾乎使用這個類的功能在每一次活動,所以我跑我每次使用這些功能一個時間的考驗。
我想知道是否有一種方法來在應用程序的開始階段初始化IP地址。

回答

0
  1. 首先,這是更多的OOP是做一個Util類,只是把方法放在那裏。並調用UtilClass.getIp();每次你使用它。
  2. 當您的應用程序和您有權訪問的時候發生的第一件事是Application.onCreate();你可以初始化你的變量,使它變爲公共靜態,這樣你就可以使用YourApp.method。
  3. 另一種方法是擴展Activity類,讓所有Activiy繼承該方法。
+0

謝謝wtsang02我想做一次測試,所以我想我會測試第二個選項。我會告訴你發生了什麼;) – 2013-03-24 23:14:58

+0

確保你在你的清單中聲明你的子類應用程序。 – wtsang02 2013-03-25 01:49:48

0

聲明最終的字符串。在構造函數中設置它。