如何从网站获取小字符串数据。

时间:2013-06-18 05:32:18

标签: android json web

我可以从自己的网站上检索字符串数据吗?实际上我有一个想法,如果市场上有任何新版本,提示用户更新我的应用程序。 为此,我有一个网站上有应用程序链接。每次我更新我的应用程序时,我都会在网站上放置一个版本字符串。现在我想以某种方式获取字符串数据并将其与我的版本代码进行比较。如果两者之间存在任何差异,将提示用户进行更新。

例如,如果我的应用版本代码为21且网站字符串包含数据22则表示我的应用程序的新更新可用,系统将提示用户下载该应用程序。任何人都可以通过告诉我将字符串数据放到网站以及如何在我的Android应用程序中检索该数据来帮助我这个想法。 提前完成。

3 个答案:

答案 0 :(得分:0)

如果您要在Google Play中发布应用,Google Play会为您处理。

但是如果你不是通过一些内置了这种更新机制的应用程序商店,那么你可以在任何Web服务器(比如Apache)上托管一个静态页面,并使用URL连接到该页面并检索该值。

答案 1 :(得分:0)

是的,您可以通过在您的站点上添加检查更新WebService来执行此操作。
当您要检查应用程序的任何更新时,您的应用程序将从该Web服务调用Method,作为回报返回版本,然后您可以与之进行比较并执行更新,

答案 2 :(得分:0)

我正在使用您正在寻找的相同功能。我在MainActivity的OnCreate上调用了networkUpdate()。

  1. 此功能创建了分离的线程并在线获取最新版本号。
  2. 获取此二进制文件的版本号
  3. 在吐司中显示自定义消息(提醒新版本)
  4. 在线文本文件

    {"version":"1.2","message":"News version of XXX is available. Please download at Google Play"}
    

    android中的源代码

        private Handler m_handler;
    @Override
        protected void onCreate(Bundle savedInstanceState) {
    
        ...............
    
        m_handler = new Handler();  //for main thread
        networkUpdate();
        }
    
    private void networkUpdate(){ 
    
    
        Thread t = new Thread(new Runnable() {
    
              @Override 
              public void run() { //heavy loading 
                  ObjectMapper mapper = new ObjectMapper();
                  try {
                      HttpClient client = new DefaultHttpClient();
                        HttpGet request = new HttpGet(
                                "http://xxx/version.txt");
                        HttpResponse response = client.execute(request);
                        String retSrc = EntityUtils.toString(response.getEntity());
    
                JsonNode networkJson =  mapper.readTree(retSrc);
                PackageInfo pInfo = getPackageManager().getPackageInfo(getPackageName(), 0);
                String version = pInfo.versionName;
                String networkVersion = networkJson.path("version").textValue();
                if(Float.valueOf(version) < Float.valueOf(networkVersion)){
                    m_updateMessage = networkJson.path("message").textValue();
                }
                System.out.println(version + "v "+ networkVersion + " m " +networkJson.path("message").textValue());
                } catch (Exception e) {
                    Log.e("network update", "read version json", e);
                }
                  m_handler.post(new Runnable() {
    
              public void run() { //main thread
    
                  if(m_updateMessage != null){
                      Toast.makeText(MainActivity.this, m_updateMessage, Toast.LENGTH_LONG).show();
                  }
    
              } }); } }); t.start();
    
    
    }