Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/201.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
通过互联网更新Android应用程序内容?_Android_Database - Fatal编程技术网

通过互联网更新Android应用程序内容?

通过互联网更新Android应用程序内容?,android,database,Android,Database,我想开发一个Android应用程序,它将从互联网(服务器)获取内容,并在应用程序中呈现 (例如,我接受今天的天气预报,将数字放入SQLite数据库或.txt文件,将数据库/txt文件放入internet服务器,因此当我打开应用程序时,应用程序通过网络连接并下载数据库,并向我提供今天的天气预报) 如果你能让我参考一些关于这个问题的例子/视频教程/书籍,我将非常感谢 您要做的是开发一个RESTAPI,为您的android应用程序提供数据。例如,你的网站有一些你想在你的应用程序中使用的内容,然后你可以

我想开发一个Android应用程序,它将从互联网(服务器)获取内容,并在应用程序中呈现

(例如,我接受今天的天气预报,将数字放入SQLite数据库或.txt文件,将数据库/txt文件放入internet服务器,因此当我打开应用程序时,应用程序通过网络连接并下载数据库,并向我提供今天的天气预报)


如果你能让我参考一些关于这个问题的例子/视频教程/书籍,我将非常感谢

您要做的是开发一个RESTAPI,为您的android应用程序提供数据。例如,你的网站有一些你想在你的应用程序中使用的内容,然后你可以编写一个php脚本,只返回特定格式的数据

例如,mysite.net/rest/fetchAllLocations.php?可能是一些参数

这将以json格式返回位置,下面是一个示例:

[{“id”:1,“shop_lng”:8.5317153930664,“shop_lat”:52.02480316121,“shop_zipcode”:33602,“shop_city”:“Bielefeld”,“shop_street”:“Arndtstra\u00dfe”,“shop_snumber”:3,“shop_name”:“M\u00fcller”,“shop_desc”:“Kaufhaus”}]

以下是rest api请求的示例:

因此,当您设置了RESTAPI后,您就可以用android手机接收数据了。我使用静态方法获取此数据:

public class JsonGrabber{

public static JSONArray receiveData(){  
    String url = "your url";
    String result = "";

    DefaultHttpClient client = new DefaultHttpClient();
    HttpGet method = new HttpGet(url);
    HttpResponse res = null;

    try {
        res = client.execute(method);
    } catch (ClientProtocolException e1) {
        e1.printStackTrace();
    } catch (IOException e1) {
        e1.printStackTrace();
    }

    try{
        InputStream is = res.getEntity().getContent();
BufferedReader reader = new BufferedReader(new InputStreamReader(is,"iso-8859-1"));
         StringBuilder sb = new StringBuilder();
         String line = null;
         while ((line = reader.readLine()) != null) {
                 sb.append(line + "\n");
         }
         is.close();
         result = sb.toString();
    }catch(Exception e){
         Log.e("log_tag", "Error converting result "+e.toString());
    }

    JSONArray jArray = null;

    try{
         jArray = new JSONArray(result);
    }catch(JSONException e){
            Log.e("log_tag", "Error parsing data "+e.toString());
    }

    return jArray;
}
}
好了,就是这样,一旦你有了json格式的数据,你只需要解析它:

JSONArray测试=(JSONArray)JsonGrabber.receiveData()

试试{

对于(inti=0;iso),这有什么大不了的?请参阅文档。从URL.getContent()开始@Ankit Jain,使用ANdroid附带的Apache HTTP库实际上更容易。谢谢大家的回复,我刚刚开始这个项目,我是ANdroid应用程序开发的新手,所以我需要一些例子来指导我了解Hanks Artwork,你的帖子帮了我很多忙!对于将来遇到同样问题的人lem as me…ArtWorkAD描述的方法非常有效,但不要忘记将其放入AndroidManifest.xml文件,否则您的应用程序将无法工作…再次感谢ArtWorkAD的回答
try { 
    for(int i=0;i<test.length();i++){
    JSONObject json_data = test.getJSONObject(i);
    int id = json_data.getInt("id");
    }
}