有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案