2013-01-21 34 views
0

我只是想知道它是可行的,从网络浏览器(任何计算机)的Android问给它的位置(例如),以便用户可以使用谷歌浏览它地图。撷取的Android使用GCM和网站上显示其位置(谷歌地图)

这里的设计我有我的头:

  • 从浏览器发送请求获得位置Web服务器
  • 一个记录添加到数据库表(GCM_REQUESTS)与要求和时间要求 。
  • Web服务器发送请求使用GCM 用的requestId一起给位置(或其他)。
  • GCM将发送相同数据到Android
  • 现在Android应用解析数据(请求),并且将它的位置是这样 (http://myserver.com/updatelocation?reqId=123 & LON 东西= 10.0 & LAT = 5.5)
  • 这将在GCM_REQUESTS表来保留。
  • 在平均时间使用AJAX调用我们泳池(5秒),用于 GCM_REQUESTS表的任何更新,如果发现任何更新,我们会读到它,并将其发送 回浏览器
  • 现在AJAX调用将停止投票和浏览器将更新为 位置。

请指导我这种方法是否有效,是否可以通过遵循任何其他方法进行优化。

回答

1

我做过类似的东西,这种方法完全适用于我,在这里仅仅是一些有用的指针:

1)当你推到GCM服务器,如果响应不成功(例如,NotRegistered或MisMatchSenderID),然后通过适当的浏览器对用户作出响应(应用程序不再安装在设备上或与设备通信时出错)

2)如果设备响应null,请确保这是处理(见下文),并以类似设备位置在此时无法确定的方式向用户报告。

东西我遇到了我崩溃的应用程序配发的是,如果你尝试设置的位置数据进入后,它为空。我粘贴了下面的代码来处理这个问题,这样你就可以避免这样的问题。

String provider = lm.getBestProvider(criteria, true); 

    if(provider == null) 
    { 
     provider = LocationManager.GPS_PROVIDER; 
    } 
    Location location = lm.getLastKnownLocation(provider); 

    String lat1 = ""; 
    String lon1 = ""; 
    if(location != null) 
    { 
     lat1 = String.valueOf(location.getLatitude()); 
     lon1 = String.valueOf(location.getLongitude()); 
    } 

希望这有助于

+0

尼斯,谢谢。你知道这个实现的任何开源项目吗? –

相关问题