晚上好,
我一直在尝试实现一个简单的 Android(tm) 应用程序,该应用程序利用 Google Places(tm) API 来确定当地的兴趣点(例如餐馆和酒店),但是我在确定如何实际获取时遇到了很多麻烦开始了。
我已经使用的资源如下:
-由Brain Buikema主持的Android(tm)开发博客
-关于异步任务的 Android(tm) 开发者文档
-来自类似情况的个人的各种其他stackoverflow帖子
我只是希望得到一些指导,以便我这种情况的任何人都可以简单地找到这篇文章,然后可能会被转发到一些非常有见地的资源。
此外,我觉得使用谷歌搜索来查找资源有些低效,还有其他我不知道的程序员经常使用的数据库吗?有推荐的文献吗?
TL;博士...
-我正在寻找一些关于使用 Places API、在 Android(tm) 平台上使用 JSON 对象和网络的权威指南。
-我希望被重定向到其他人过去发现的一些有用的资源。
- 我在下面包含了我的 Main.java 文件只是为了提供上下文 - 我不是在寻找答案:)
实现 Places API 功能的 Main.java 类的代码:
Button food = (Button) findViewById(R.id.button14);
food.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v)
{
type = "restaurant";
//Constructs the urlString
if(useCurr)
urlString = stringConstructor(myKey, lat, lon, radius, sensor, type);
else
{
//Here, you must update the lat and lon values according to the location input by the user
urlString = stringConstructor(myKey, lat, lon, radius, sensor, type);
}
//DO HTTPS REQUEST HERE
urlString = "https://maps.googleapis.com/maps/api/place/search/json?location=-33.8670522,151.1957362&radius=500&types=food&name=harbour&sensor=false&key=AIzaSyAp24M3GU9V3kWrrezye8CyUrhtpToUhrs";
Results res = new Results();
JSONArray json = res.doInBackground(urlString);
System.out.println(json);
}
});
处理异步任务的 Result 类的代码:
private class Results extends AsyncTask<String, Integer, JSONArray>
{
protected JSONArray doInBackground(String...params)
{
JSONArray output = null;
try
{
try
{
url = new URL(params[0]);
}
catch(MalformedURLException e)
{
System.out.println("URL formed incorrectly! (" + e + ")");
}
output = (JSONArray) url.getContent();
}
catch(Exception e)
{
System.out.println("Exception: " + e);
}
return output;
}
}
每当我单击模拟器中的“食物”按钮(如上所述)时,当前都会收到 android.os.NetworkOnMainThreatException。
非常欢迎任何建议,我正在努力在 Android 平台上建立一个非常坚实的基础。