java Android Studio GPS connect从web服务器返回结果
我试图连接到Web服务器,从JSON格式获取特定信息,并将其显示在emulator/Android手机上的文本框中,但除了错误,我似乎无法得到任何结果
这是我目前的代码
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
StrictMode.ThreadPolicy policy = new SictMode.ThreadPolicy.Builder().permitAll().build();
setThreadPolicy(policy);
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED
&& ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this, new String[]{
"安卓.permission.ACCESS_FINE_LOCATION",
"安卓.permission.ACCESS_COARSE_LOCATION"}, 1);
} else {
LocationManager lm = (LocationManager) getSystemService(LOCATION_SERVICE);
lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, new LocationListener() {
@Override
public void onLocationChanged(Location location) {
double lng = location.getLongitude();
double lat = location.getLatitude();
((TextView) findViewById(R.id.latTextView)).setText("" + lat);
((TextView) findViewById(R.id.lngTextView)).setText("" + lng);
//String url = "http://zebedee.kriswelsh.com:8080/stations?lat=" + lat + "&lng=" + lng;
String url = "http://zebedee.kriswelsh.com:8080/stations?lat=53.4355&lng=3.0508";
search(url);
}
@Override
public void onStatusChanged(String s, int i, Bundle bundle) {
}
@Override
public void onProviderEnabled(String s) {
}
@Override
public void onProviderDisabled(String s) {
}
});
}
}
public String search(String url) {
ArrayList<String> listItems = new ArrayList<String>();
String resultsOut = "";
try {
URL fhr = new URL(url);
URLConnection tc = fhr.openConnection();
InputStreamReader isr = new InputStreamReader(tc.getInputStream());
BufferedReader in = new BufferedReader(isr);
String line;
while ((line = in.readLine()) != null) {
JSONArray ja = new JSONArray(line);
for (int i = 0; i < ja.length(); i++) {
JSONObject jo = (JSONObject) ja.get(i);
listItems.add(jo.getString("StationName"));
listItems.add(jo.getString("Lattitude"));
}
}
for(String s : listItems)
{
resultsOut =resultsOut.concat(s+ "\n");
}
return resultsOut;
}
catch (MalformedURLException e ){e.printStackTrace();}
catch (IOException e){e.printStackTrace();}
catch (JSONException e){e.printStackTrace();}
return "error";
}
public void onClick (View v) {
TextView results = (TextView) findViewById(R.id.results);
results.setText(search(String.valueOf(v)));
}
@Override
public void onStop() {
super.onStop();
}
}
共 (0) 个答案