2016-07-03 1 views
0

웹 응용 프로그램과 통신하는 안드로이드 응용 프로그램에서 작업하고 있습니다. 로컬로 나머지 서버를 실행합니다. 그러나 내 서버가 변경되거나 포트가 변경되면 응용 프로그램을 빌드해야합니다. 해결책이 있습니까? ip adresse가 직접 업데이트합니까? 이 내 웹 서비스android 응용 프로그램에서 ip 주소를 업데이트 할 수있는 능력

public class TableauDeBordFragment extends Fragment { 


public static final String SERVEL_URL = "http://192.168.2.120:8082/access-control-web/rest/roles/attendance"; 

List<Employe> employes; 
ListView tableauDeBordListview; 

@Nullable 
@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 

    employes = new ArrayList<Employe>(); 
    View view = inflater.inflate(R.layout.fragment_tableau_de_bord, container, false); 
    tableauDeBordListview = (ListView) view.findViewById(R.id.tableaudebordlist); 
    DownloadJSON downloadJSON = new DownloadJSON(); 
    downloadJSON.execute(); 
return view; 
} 

public class DownloadJSON extends AsyncTask<Void, Void, Void> { 

    @Override 
    protected Void doInBackground(Void... params) { 
     try { 
      URL theURL = new URL(SERVEL_URL); 
      BufferedReader reader = new BufferedReader(new InputStreamReader(theURL.openConnection().getInputStream(), "UTF-8")); 

      String jsonStr = reader.readLine(); 
      JSONArray jsonArray = new JSONArray(jsonStr); 
      for (int i=0;i<jsonArray.length();i++) 
      { 
       JSONObject jsonAttendanceItem = jsonArray.getJSONObject(i); 
       JSONObject jsonEmployeeItem = jsonAttendanceItem.getJSONObject("employee"); 
       Employe employe = new Employe(); 
       employe.setFirstName(jsonEmployeeItem.getString("firstName")); 
       employe.setLastName(jsonEmployeeItem.getString("lastName")); 
       employe.setPhoneNumber(jsonEmployeeItem.getString("phoneNumber")); 
       employes.add(employe); 
      } 
      } catch (MalformedURLException e) { 
      e.printStackTrace(); 
     } catch (UnsupportedEncodingException e) { 
      e.printStackTrace(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } catch (JSONException e) { 
      e.printStackTrace(); 
     } 


     return null; 
    } 

    @Override 
    protected void onPostExecute(Void aVoid) { 
     super.onPostExecute(aVoid); 


     ArrayAdapter<Employe> adapter = new TableDeBordCustum(getActivity(), employes); 
     tableauDeBordListview.setAdapter(adapter); 

    } 
} 

} 나는이 문제에 대한 간단한 해결책이 있다고 생각하지 않습니다

답변

0

을받을 수 내 코드입니다. 그러나 간단한 해결 방법은 앱의 공유 환경 설정에 서버의 ip/port를 추가하는 것입니다. 즉, 변경 될 때마다 앱을 다시 작성하지 않고 앱 설정 만 수정할 수 있습니다.

+0

당신이 솔루션에 대해 어떤 생각을 않는 코드를 참조하여 응용 프로그램을 만드는 당신의 URL에 IP를 사용할 필요가 없습니다 ,, 타 개념을 시도 자신을 업데이트하십시오. 난 그냥 내 응용 프로그램의 사용자에게 쉽게하고 싶다. –

0

온라인 서버에 코드를 넣어 같이, 당신은

관련 문제