내 안드로이드 장치에서 로컬 호스트를 액세서 필요 지금. 여기에 Java 코드가 있으며 여기서 수정해야 할 부분을 강조 할 것입니다. localhost/android_data ...를 통해 내 컴퓨터에서 PHP 파일에 액세스 할 수 있지만 내 전화 브라우저에서 액세스 할 수 없습니다. 또한 첨부 된 xml 파일에 작성된 코드가 없기 때문에 아마도 내 PHP 파일이 응용 프로그램에 표시되지 않는 것입니다.내가 다음 폴더에 PHP 파일을
추가 참고 사항 : 내부 다음 MySQLData.java라는
[{"name":"User1","received_power":"-75.12207037710479","tower":"4","status":"0"},{"name":"User2","received_power":"18.89454151068304","tower":"3","status":"0"}]
내 자바 파일이 있습니다 :
난 그냥 내 응용 프로그램은 MySQL의 데이터베이스와 출력에 연결되어있는이 PHP 파일을 표시 할package com.example.qosmetre2;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import android.app.Activity;
import android.net.ParseException;
import android.os.Bundle;
import android.util.Log;
import android.widget.Toast;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import org.apache.http.NameValuePair;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import android.app.ListActivity;
import android.app.ProgressDialog;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.TextView;
public class MySQLData extends ListActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
String result = null;
InputStream is = null;
StringBuilder sb=null;
//String result=null;
ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
//http post
try{
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://174.112.97.111/android_test/fetch_data2.php");
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpResponse response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
is = entity.getContent();
}catch(Exception e){
Log.e("log_tag", "Error in http connection"+e.toString());
}
//convert response to string
try{
BufferedReader reader = new BufferedReader(new InputStreamReader(is,"iso-8859-1"),8);
sb = new StringBuilder();
sb.append(reader.readLine() + "\n");
String line="0";
while ((line = reader.readLine()) != null) {
sb.append(line + "\n");
}
is.close();
result=sb.toString();
}catch(Exception e){
Log.e("log_tag", "Error converting result "+e.toString());
}
//paring data
String nam;
int rec_pow;
int tow;
int stat;
try{
JSONArray jArray = new JSONArray(result);
JSONObject json_data=null;
for(int i=0;i<jArray.length();i++){
json_data = jArray.getJSONObject(i);
nam=json_data.getString("name");
rec_pow=json_data.getInt("recieved_power");
tow=json_data.getInt("tower");
stat=json_data.getInt("status");
}
}catch(JSONException e1){
Toast.makeText(getBaseContext(), "Could not Parse Data", Toast.LENGTH_LONG).show();
}catch (ParseException e1){
e1.printStackTrace();
}
}
}
MainActivity.java라는 또 다른 파일에는 기본 파일을 제외하고는 아무것도 들어 있지 않으며 main_activity.xml이라는 XML 파일이 있으며 그 안에 아무것도없는 파일이 있습니다. 여기
내 andoidmanifest.xml입니다 :<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.qosmetre2"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="11"
android:targetSdkVersion="17" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.example.qosmetre2.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".MySQLData"
android:label="All the Data" >
</activity>
</application>
두 장치가 같은 네트워크에 있습니까? –
http://174.112.97.111은 안드로이드 장치가 액세스 할 수있는 사이트라고 가정합니다 ... 안드로이드의 브라우저에서 그렇게하려고 했습니까? 나는 내 컴퓨터에서 그것을 얻을 수 없었다. @ RaghavSood가 암시 하듯이 - 안드로이드가 서버를 볼 수 없다면 모든 베팅은 꺼져 있습니다. – Floris
이 문제의 원인은 wamp가 localhost에서 오는 연결을 허용하지 않도록 설정 한 것일 수 있습니다. – Chronial