Android应用访问网络服务

时间:2011-01-18 09:52:40

标签: android

我需要创建一个Android应用程序,我不确定哪个更好的方法可以更好地实现这一点我的意思是我应该使用WebView还是创建一个应用程序。

我需要实现现有的应用程序,它是一个主要由登录屏幕组成的ASP.NET应用程序,一旦用户登录,他将根据gridview中的选择看到列表中可能是gridview的项目。然后,他将显示有关所选项目的更详细信息。

以上是我需要在Android手机上将其作为应用程序实现的Web应用程序。

此外,还需要使用GPS,根据GPS值选择部门,并使用相机拍照并将其保存到服务器上。

我想到的解决方案是公开.NET Web服务,然后在Android手机中访问它!

但我对Android开发很新,真的不知道怎么做。有没有更好的解决方案?

任何人都可以帮我解决这个问题吗?

2 个答案:

答案 0 :(得分:1)

<强>优点:

  • Android应用程序可能比Web应用程序工作得更快(但仍取决于网页的复杂性)
  • 在此社区和Android开发者网站的帮助下,您可以在2-3周内完成您的应用。
  • 正如您所说,图片捕获/上传和GPS等是智能手机应用程序的优势。

<强>缺点:

  • 稍后,您可能需要iPhone,Blackberry应用程序!

代替通常返回XML的.Net Web服务,您可以使用JSON响应进行HTTP调用(我在Asp.net MVC中看到过)。这样你就可以轻松解析android app上的数据。

<强>加了:

HTTP电话:

HttpClient httpClient = new DefaultHttpClient();
HttpContext localContext = new BasicHttpContext();
HttpGet httpGet = new HttpGet(getString(R.string.WebServiceURL) + "/cfc/iphonewebservice.cfc?returnformat=json&method=validateUserLogin&username=" + URLEncoder.encode(sUserName) + "&password=" + URLEncoder.encode(sPassword,"UTF-8"));
HttpResponse response = httpClient.execute(httpGet, localContext);

BufferedReader reader = new BufferedReader(new InputStreamReader(response.getEntity().getContent(), "UTF-8"));
String sResponse = reader.readLine();
JSONObject JResponse = new JSONObject(sResponse);
String sMessage = JResponse.getString("MESSAGE");
int success = JResponse.getInt("SUCCESS")

答案 1 :(得分:1)

您可以使用两种方法:

  1. 构建Android应用。
  2. 使用W3C地理位置构建Web应用程序以访问GPS坐标。 (见geo-location-javascript
  3. 如果你选择选项(1),你将希望将.NET服务公开为一个简单的REST API(使用JSON,因为Vikas建议使它更简单!)

    Android已经提供了访问和解析此类REST API所需的所有组件,特别是Apache HTTP和JSON包,并且一旦您拥有基本的请求/解析框架,就可以相当快速地进行迭代。