Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/205.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 访问数据以在Android应用程序中显示为搜索结果_Java_Android_Database_Google Maps - Fatal编程技术网

Java 访问数据以在Android应用程序中显示为搜索结果

Java 访问数据以在Android应用程序中显示为搜索结果,java,android,database,google-maps,Java,Android,Database,Google Maps,我正在开发一个Android应用程序,它可以获取用户的当前位置,并显示靠近他/她的位置的餐厅列表。餐厅的数据对我来说是可用的(即我确实有我想在搜索结果中显示的每个餐厅的lat/long)。我不能使用GooglePlacesAPI,因为我只需要显示我们数据库(在我们的网站)中可用的餐厅。我的问题是如何访问我的数据库(甚至是URL),这是在一台计算机上,以提取餐厅的数据并在我的android应用程序中显示为搜索结果? 实际上,我正在为我的公司制作一个无缝()类型的应用程序。 我是android应用程

我正在开发一个Android应用程序,它可以获取用户的当前位置,并显示靠近他/她的位置的餐厅列表。餐厅的数据对我来说是可用的(即我确实有我想在搜索结果中显示的每个餐厅的lat/long)。我不能使用GooglePlacesAPI,因为我只需要显示我们数据库(在我们的网站)中可用的餐厅。我的问题是如何访问我的数据库(甚至是URL),这是在一台计算机上,以提取餐厅的数据并在我的android应用程序中显示为搜索结果?
实际上,我正在为我的公司制作一个无缝()类型的应用程序。 我是android应用程序开发的新手。所以,如果这是一个非常宽泛或愚蠢的问题,请原谅。请告诉我我需要学习什么主题来实现这个。我会自己学习和做

谢谢。

您需要:

  • 用于存储餐厅及其经度/纬度的Sqlite数据库
  • 一个地图视图来显示地图(别忘了注册你的谷歌地图API键
  • 地图覆盖以显示地图上的标记
  • GPS访问获取用户位置(需要相应的Android权限
  • 一种简单的搜索算法,用于检索距离用户位置x范围内的餐厅结果集
编辑

如果数据库存储在服务器上,则需要一种查询服务器的方法,最好使用基于HTTP的协议,如REST。在Android设备上缓存餐厅位置(使用Sqlite)非常有用(但不是必需的),以防用户离线(好消息是:由于您可以在Android和服务器上使用Java,因此90%的数据访问层只需编写一次)


对于从服务器到Android客户端的数据传输,JSON是一种流行的格式

要访问计算机上的数据库(而不是Android上的SQLite),您应该使用数据库服务器的url将
localhost
更改为:10.0.2.2。但是如果你的数据库在互联网上,你应该创建一些RESTAPI来获取你需要的数据。然后使用
HttpClient
从服务器获取数据

您需要的一切都在: 使用
MyLocationOverlay

例如(指向服务器的url):

访问服务器上的数据—这取决于您如何实现(以及使用什么技术)您的服务器(RESTAPI?、WebService?、纯HTML?),以及服务器响应的格式(JSON?XML?)等

我建议使用JSON,因为使用Android SDK中包含的类很容易解析:

        String json = execute(new HttpGet(Constants.SERVER_URL + "/fetchData"));
        JSONObject responseJSON = new JSONObject(json);
        if(responseJSON.has("auth_error")) {
            throw new IOException("fetchData_error");
        }

谢谢你的回复!我已经完成了第2、3、4点。我研究并实施了它们。但是我如何访问这个数据库呢?通过URL?因为此数据库将仅在计算机或网站上。确定。因此,首先我需要了解如何查询服务器(使用基于HTTP的协议(REST)),然后查看JSON,以便将数据从服务器数据库传输到我的应用程序。在这之后,我需要做的就是适当地解析接收到的数据并显示我的搜索结果。因此,我需要使用HttpClient从网站访问。在开发过程中,使用10.0.2.2从我的计算机访问它。你能给我推荐一个主题,包括通过网站的url访问数据吗?实际上,我已经实现了我应用程序的地图部分。我只需要知道如何以及从何处访问我的数据。谢谢!我将了解如何从服务器访问数据,并可能使用JSON作为响应格式。在我实现这一点之前,我确实有很多研究和学习要做。
        String json = execute(new HttpGet(Constants.SERVER_URL + "/fetchData"));
        JSONObject responseJSON = new JSONObject(json);
        if(responseJSON.has("auth_error")) {
            throw new IOException("fetchData_error");
        }