2016-07-21 7 views
0

こんにちは皆さんは私のアンドロイドアプリケーションで問題が発生しています。私はアンドロイドアプリを私の仕事のPCでうまく動作するubuntu 16.0.4にインストールしましたが、ウィンドウ8.1で私のアプリをインポートすると。ログインしても動作しません。 ファーストオフ私のアンドロイドのスタジオは私のモバイルをウィンドウ8.1で認識しないので、pdaNetをインストールしても問題ありません。 私のコードをデバッグするとき 確立された接続がホストマシンのソフトウェアによって中断されました ConnectivityManagerは真と偽の両方を返します。それは私が窓8.1に問題が何を知らないが、私はウィンドウ8.1のjax-rs〜198.168.xのサーバーにアクセスできない

http://192.168.0.102:8080/payroll-services-ws/api/secured/message 

上で実行し、同じ無線LANやWebサービスを共有する私のラップトップと私の携帯電話を接続し、私がチェックすると、Linuxで

ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); 

    if (connectivityManager != null) { 
     NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo(); 
     if (networkInfo != null && networkInfo.isAvailable() 
       && networkInfo.isConnected()) { 
      return true; 
     } else { 
      return false; 
     } 
    } else { 
     return false; 
    } 

をしたことはありませんポストマンは、それはそうここ正しく..

作業ログイン

public class Login extends AppCompatActivity { 

private ProgressBar progressBar; 
List<MyTask> myTasksList; 
private static final String RESTLOGIN="http://192.168.0.102:8080/payroll-services-ws/api/secured/message"; 
private EditText usernameEditText; 
private EditText passwordEdittext; 



@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_login); 
    progressBar =(ProgressBar)findViewById(R.id.progressBarLogin); 
    progressBar.setVisibility(View.INVISIBLE); 
    myTasksList = new ArrayList<>(); 

    usernameEditText = (EditText)findViewById(R.id.etUsername); 
    passwordEdittext = (EditText)findViewById(R.id.etPass); 
} 

public void onBtnClick(View view){ 
    Button buttonLogin = (Button)findViewById(R.id.btnSingIn); 
    if (view.getId()==R.id.btnSingIn){ 
     //updateDisplay(); 
     if (isOnline()){ 
      requestData(RESTLOGIN); 
     } 
     else{ 
      Toast.makeText(Login.this, "Not Connect WIth Network", Toast.LENGTH_LONG).show(); 
     } 
    } 
    else if (view.getId()==R.id.btnSignUp){ 
     Intent intent = new Intent(Login.this,Register.class); 
     startActivity(intent); 
    } 
} 
protected boolean isOnline(){ 
    ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); 

    if (connectivityManager != null) { 
     NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo(); 
     if (networkInfo != null && networkInfo.isAvailable() 
       && networkInfo.isConnected()) { 
      return true; 
     } else { 
      return false; 
     } 
    } else { 
     return false; 
    } 
} 
private void requestData(String uri){ 
    MyTask myTask = new MyTask(); 
    myTask.execute(uri,usernameEditText.getText().toString(),passwordEdittext.getText().toString()); 
} 
public void updateDisplay(){ 
    Toast.makeText(Login.this, "Login Successfull", Toast.LENGTH_SHORT).show(); 
    Intent mainActivity = new Intent(Login.this,Home.class); 
    mainActivity.putExtra("username",usernameEditText.getText().toString()); 
    mainActivity.putExtra("password",passwordEdittext.getText().toString()); 
    startActivity(mainActivity); 
} 
//param progress and result 
private class MyTask extends AsyncTask<String,String,String>{ 
    @Override 
    protected void onPreExecute() { 
     if (myTasksList.size()==0){ 
      progressBar.setVisibility(View.VISIBLE); 
     } 
     myTasksList.add(this); 
    } 


    @Override 
    protected String doInBackground(String... params) { 
     //param 0 which is come from requestData 
     String content = HttpManager.getData(params[0],params[1],params[2]); 
     return content; 

    } 

    //content of dobackground pass to the dopostexcute 
    @Override 
    protected void onPostExecute(String result) { 

     myTasksList.remove(this); 
     if (myTasksList.size()==0){ 
      progressBar.setVisibility(View.INVISIBLE); 
     } 
     if (result==null){ 
      Toast.makeText(Login.this,"Sorry Username or password doesnot match",Toast.LENGTH_LONG).show(); 
      return; 
     } 

     //list of object from content 
     //from json 

     updateDisplay(); 
    } 

} 

} 
の私のコードです私はローカルホストを経由して郵便配達中にのみアクセスすることができます

:8080

+0

問題は何ですか? Androidコード、または実際のサーバーですか? –

+0

コードは問題ありませんが、192.168.0.102:8080というアドレスを使って郵便配達員とアンドロイドの両方でアドレスにアクセスすることはできません –

+1

同じコンピュータで郵便番号を使用すると、127.0.0.1または192.168.0.102 'ルーティングテーブルの' 127.0.0.1'にフォールバックするだけです。 LAN上の別のデバイスで '192.168.0.102'にアクセスできない場合、それはネットワーキング上の問題です。 1)サーバは公的にアクセス可能でなければならず、2)ポートはリスンしていなければならず、3)ファイアウォールはポートを許可するためにオープンしていなければならない。 –

答えて

0

問題ウィンドウ8.1のファイアウォールによる発生だからESP TCPポート80私のための問題を解決するファイアウォール設定を編集し、任意のパブリックIPアドレスをブロックしています。

関連する問題