こんにちは皆さんは私のアンドロイドアプリケーションで問題が発生しています。私はアンドロイドアプリを私の仕事の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
問題は何ですか? Androidコード、または実際のサーバーですか? –
コードは問題ありませんが、192.168.0.102:8080というアドレスを使って郵便配達員とアンドロイドの両方でアドレスにアクセスすることはできません –
同じコンピュータで郵便番号を使用すると、127.0.0.1または192.168.0.102 'ルーティングテーブルの' 127.0.0.1'にフォールバックするだけです。 LAN上の別のデバイスで '192.168.0.102'にアクセスできない場合、それはネットワーキング上の問題です。 1)サーバは公的にアクセス可能でなければならず、2)ポートはリスンしていなければならず、3)ファイアウォールはポートを許可するためにオープンしていなければならない。 –