我开发了一个应用程序来解析点KML文件并从Google Elevation API中获取它们的高程。我的问题是当应用程序运行然后打开设备的网络时,它会抛出Unable来解析主机“maps.googleapis.com”,但是当我在运行应用程序之前打开网络时,它会返回来自主机服务的积分。以下是连接到URL并以字符串形式获取数据的代码段:
public class HttpManager{
public static String getData(String uri) {
BufferedReader reader = null;
try {
URL url = new URL(uri);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
StringBuilder sb = new StringBuilder();
String line;
while ((line = reader.readLine()) != null) {
sb.append(line + "\n");
}
connection.disconnect();
return sb.toString();
} catch (IOException e) {
e.printStackTrace();
return null;
} finally {
if (reader != null) {
try {
reader.close();
} catch (IOException e) {
e.printStackTrace();
return null;
}
}
}
}
}
JSON结果将在另一个类中解析以获得提升。这种施法的原因是什么? 我想提一些提示:
1. Manifest.xml中提供了INTERNET权限。 2. API密钥已获得授权。