- 浏览: 260476 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
sunshine_bean:
第四行改进下URL=`svn info |grep &quo ...
linux判断是否需要svn up的脚本 -
leokelly001:
设置请求头,user-agent就行了
android使用豆瓣API出现500错误及解决方法 -
貌似掉线:
txy7121 写道HandlerFactory和AntiCo ...
大谈android安全2——Activity劫持的防范程序 -
txy7121:
HandlerFactory和AntiConstants这两个 ...
大谈android安全2——Activity劫持的防范程序 -
貌似掉线:
hyc_willie 写道关注着你的框架,希望能见到它的发布 ...
androidkit——Android开发框架
使用android的定位服务,需要在manifest文件里增加相应的权限,这里不赘述。
下面是两个类的代码,第一个是activity,完成的功能是获取经纬度,然后提供查询对应的地址的按钮。
第二个是工具类,从经纬度获取到地址。
蛋疼的是,不知道为什么,我都那样写了,获取到的数据还是英文的,而从浏览器上获取到的却是中文的。求解。
下面是获取到的json数据的格式:
纠结了一个小时,在网上转了一大圈之后,才发现应该这样子写:“http://maps.googleapis.com/maps/api/geocode/json?latlng=%f,%f&language=zh-CN&sensor=true”。。真的是估计只有经常使用它的人,和它的开发人员,才知道。。貌似文档中也没有提供相关说明。。(这个答案来自:http://gdgzzch.blog.163.com/blog/static/3764045220118354154284/)
没准是你失散多年的兄弟
?
下面是两个类的代码,第一个是activity,完成的功能是获取经纬度,然后提供查询对应的地址的按钮。
第二个是工具类,从经纬度获取到地址。
/* * @(#)LocationActivity.java Project:androidDevices * Date:2012-6-5 * * Copyright (c) 2011 CFuture09, Institute of Software, * Guangdong Ocean University, Zhanjiang, GuangDong, China. * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.sinaapp.msdxblog.android.location; import android.app.Activity; import android.content.Context; import android.location.Location; import android.location.LocationListener; import android.location.LocationManager; import android.os.Bundle; import android.view.View; import android.widget.Toast; import com.sinaapp.msdxblog.android.R; /** * @author Geek_Soledad (66704238@51uc.com) */ public class LocationActivity extends Activity { private double mLongitude; private double mLatitude; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.location); } public void onButtonClick(View v) { switch (v.getId()) { case R.id.get_location: getLocation(); break; case R.id.query: Toast.makeText(this, LocationUtil.getAddress(mLatitude, mLongitude), 1000) .show(); break; default: break; } } private void getLocation() { LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); locationManager.requestLocationUpdates( LocationManager.NETWORK_PROVIDER, 0, 0, new LocationListener() { @Override public void onStatusChanged(String provider, int status, Bundle extras) { } @Override public void onProviderEnabled(String provider) { Toast.makeText(LocationActivity.this, "enable", 1000) .show(); System.out.println("enable"); } @Override public void onProviderDisabled(String provider) { Toast.makeText(LocationActivity.this, "disable", 1000) .show(); System.out.println("disable"); } @Override public void onLocationChanged(Location location) { mLatitude = location.getLatitude(); mLongitude = location.getLongitude(); System.out.println(location.getLatitude()); System.out.println(location.getLongitude()); Toast.makeText(LocationActivity.this, mLatitude + ":" + mLongitude, 1000).show(); } }); } }
/* * @(#)LocationUtil.java Project:androidDevices * Date:2012-6-5 * * Copyright (c) 2011 CFuture09, Institute of Software, * Guangdong Ocean University, Zhanjiang, GuangDong, China. * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.sinaapp.msdxblog.android.location; import java.nio.charset.Charset; import org.json.JSONException; import org.json.JSONObject; import org.json.JSONTokener; import com.sinaapp.msdxblog.androidkit.net.DownloadUtil; /** * @author Geek_Soledad (66704238@51uc.com) */ public class LocationUtil { public static String getAddress(double lat, double lng) { String url = String .format("http://maps.googleapis.com/maps/api/geocode/json?latlng=%f,%f&language=CN&sensor=true", lat, lng); System.out.println(url); String result = DownloadUtil.downloadByUrl(url, Charset.defaultCharset()); return jsonSax(result); } private static String jsonSax(String in) { String address = null; try { JSONTokener tokener = new JSONTokener(in); JSONObject results = (JSONObject) tokener.nextValue(); if (!results.getString("status").equals("OK")) { return "无法获取具体地址。"; } System.out.println(results.toString()); JSONObject result = (JSONObject) results.getJSONArray("results") .get(0); address = result.getString("formatted_address"); } catch (JSONException e) { e.printStackTrace(); } return address; } }
蛋疼的是,不知道为什么,我都那样写了,获取到的数据还是英文的,而从浏览器上获取到的却是中文的。求解。
下面是获取到的json数据的格式:
{ "results" : [ { "address_components" : [ { "long_name" : "外环西路", "short_name" : "外环西路", "types" : [ "route" ] }, { "long_name" : "麻章区", "short_name" : "麻章区", "types" : [ "sublocality", "political" ] }, { "long_name" : "湛江", "short_name" : "湛江", "types" : [ "locality", "political" ] }, { "long_name" : "广东省", "short_name" : "广东省", "types" : [ "administrative_area_level_1", "political" ] }, { "long_name" : "中国", "short_name" : "CN", "types" : [ "country", "political" ] } ], "formatted_address" : "中国广东省湛江市麻章区外环西路", "geometry" : { "bounds" : { "northeast" : { "lat" : 21.15437220, "lng" : 110.29786920 }, "southwest" : { "lat" : 21.15323980, "lng" : 110.29655030 } }, "location" : { "lat" : 21.15385030, "lng" : 110.29716670 }, "location_type" : "APPROXIMATE", "viewport" : { "northeast" : { "lat" : 21.15515498029150, "lng" : 110.2985587302915 }, "southwest" : { "lat" : 21.15245701970850, "lng" : 110.2958607697085 } } }, "types" : [ "route" ] }, { "address_components" : [ { "long_name" : "麻章区", "short_name" : "麻章区", "types" : [ "sublocality", "political" ] }, { "long_name" : "湛江", "short_name" : "湛江", "types" : [ "locality", "political" ] }, { "long_name" : "广东省", "short_name" : "广东省", "types" : [ "administrative_area_level_1", "political" ] }, { "long_name" : "中国", "short_name" : "CN", "types" : [ "country", "political" ] } ], "formatted_address" : "中国广东省湛江市麻章区", "geometry" : { "bounds" : { "northeast" : { "lat" : 21.32472990, "lng" : 110.64709280 }, "southwest" : { "lat" : 20.85674290, "lng" : 110.12168620 } }, "location" : { "lat" : 21.2633380, "lng" : 110.33420 }, "location_type" : "APPROXIMATE", "viewport" : { "northeast" : { "lat" : 21.32472990, "lng" : 110.64709280 }, "southwest" : { "lat" : 20.85674290, "lng" : 110.12168620 } } }, "types" : [ "sublocality", "political" ] }, { "address_components" : [ { "long_name" : "湛江", "short_name" : "湛江", "types" : [ "locality", "political" ] }, { "long_name" : "广东省", "short_name" : "广东省", "types" : [ "administrative_area_level_1", "political" ] }, { "long_name" : "中国", "short_name" : "CN", "types" : [ "country", "political" ] } ], "formatted_address" : "中国广东省湛江市", "geometry" : { "bounds" : { "northeast" : { "lat" : 21.95539610, "lng" : 110.97175080 }, "southwest" : { "lat" : 20.2210810, "lng" : 109.66829810 } }, "location" : { "lat" : 21.2707020, "lng" : 110.3593870 }, "location_type" : "APPROXIMATE", "viewport" : { "northeast" : { "lat" : 21.40704480, "lng" : 110.5320740 }, "southwest" : { "lat" : 21.09339670, "lng" : 110.20797730 } } }, "types" : [ "locality", "political" ] }, { "address_components" : [ { "long_name" : "广东省", "short_name" : "广东省", "types" : [ "administrative_area_level_1", "political" ] }, { "long_name" : "中国", "short_name" : "CN", "types" : [ "country", "political" ] } ], "formatted_address" : "中国广东省", "geometry" : { "bounds" : { "northeast" : { "lat" : 25.51677140, "lng" : 117.31808370 }, "southwest" : { "lat" : 20.2210810, "lng" : 109.66829810 } }, "location" : { "lat" : 23.1321910, "lng" : 113.2665310 }, "location_type" : "APPROXIMATE", "viewport" : { "northeast" : { "lat" : 25.51677140, "lng" : 117.31808370 }, "southwest" : { "lat" : 20.2210810, "lng" : 109.66829810 } } }, "types" : [ "administrative_area_level_1", "political" ] }, { "address_components" : [ { "long_name" : "中国", "short_name" : "CN", "types" : [ "country", "political" ] } ], "formatted_address" : "中国", "geometry" : { "bounds" : { "northeast" : { "lat" : 53.56097399999999, "lng" : 134.772810 }, "southwest" : { "lat" : 18.15352160, "lng" : 73.49941369999999 } }, "location" : { "lat" : 35.861660, "lng" : 104.1953970 }, "location_type" : "APPROXIMATE", "viewport" : { "northeast" : { "lat" : 53.56097399999999, "lng" : 134.772810 }, "southwest" : { "lat" : 18.15352160, "lng" : 73.49941369999999 } } }, "types" : [ "country", "political" ] } ], "status" : "OK" }
纠结了一个小时,在网上转了一大圈之后,才发现应该这样子写:“http://maps.googleapis.com/maps/api/geocode/json?latlng=%f,%f&language=zh-CN&sensor=true”。。真的是估计只有经常使用它的人,和它的开发人员,才知道。。貌似文档中也没有提供相关说明。。(这个答案来自:http://gdgzzch.blog.163.com/blog/static/3764045220118354154284/)
评论
4 楼
貌似掉线
2013-04-08
xiaozhi6156 写道
一看,差点以为1楼是我呢..- -!
没准是你失散多年的兄弟
3 楼
xiaozhi6156
2013-04-07
一看,差点以为1楼是我呢..- -!
2 楼
貌似掉线
2012-06-08
xiaoxin0424 写道
没仔细看文档的结果
?
1 楼
xiaoxin0424
2012-06-06
没仔细看文档的结果
发表评论
-
利用电脑玩Android版“天天连萌”刷高分(四)——模拟按键及程序优化
2014-01-22 00:14 1712这一系列文章,没想到从去年10月份以来,写了三篇我就忘了写了, ... -
利用电脑玩Android版“天天连萌”刷高分(三)——连连看消除搜索
2013-10-29 17:02 1183差点忘了写接下来的这两篇博客了,这篇如果接不上上一篇,请勿见怪 ... -
利用电脑玩Android版“天天连萌”刷高分(二)——图像识别
2013-10-20 15:44 1540上一篇只是提到了在PC端利用android sdk里面的工具进 ... -
利用电脑玩Android版“天天连萌”刷高分(一)——截图
2013-10-20 11:22 3412这几周微信游戏“天天 ... -
在PC端进行android截屏的多种方法
2013-10-18 11:01 3597昨晚意外的发现在PC端进行截屏的方法相当多,在android ... -
近期计划
2013-09-01 20:02 1235在上一篇(http://maosidiao ... -
Android开源游戏引擎之Angle(二)——开始前的准备
2013-09-01 12:04 2509在上一篇博客(http://mao ... -
Android开源游戏引擎之Angle(一)——概述
2013-08-31 19:26 6046Angle是一个Android平台上 ... -
设置tabWidget标题的字体大小及颜色
2013-03-27 13:47 9462/* * @(#)TextAppearenceUtil ... -
桌面小部件AppWidget的使用
2013-02-23 13:49 1726在android平台中,显示在HOME界面的一些挂件,即桌面小 ... -
android使用actionbar与fragment
2013-01-16 23:12 2294android使用actionbar中的tab,及fragme ... -
android使用豆瓣API出现500错误及解决方法
2013-01-10 18:56 6291为团队做一个图书管理的应用,涉及到扫描ISBN然后查询图书信息 ... -
进入程序的动画IntroActivity增强版
2012-12-11 10:19 1474这是对上一次谈到的android程序进入前的动画的封装(详见: ... -
androidkit发布0.5.3alpha版
2012-12-07 09:26 1316androidkit是一个用于android应用层开发的工具包 ... -
使用Zxing及豆瓣API
2012-12-06 20:30 2400本文原创,转载请注明原文地址:http://maosidiao ... -
androidkit——减少android开发代码的工具包
2012-11-16 22:25 2227androidkit是我学android开发以来,慢慢在封装的 ... -
android开发知识点1——按钮效果
2012-10-30 15:15 2332android中控件的背景或ImageView、ImageBu ... -
android颜色选择器
2012-09-24 13:39 3380前段时间想到要封装一个颜色选择器的类,查询后知道谷歌api d ... -
androidt程序文字锯齿
2012-09-24 00:51 1287刚才才发现,在开发android程序时,如果在manifest ... -
大谈android安全2——Activity劫持的防范程序
2012-09-23 23:13 9416本文原创,转载请注明出处: http://maosidiaox ...
相关推荐
在Android中,通常使用Volley库进行网络请求并获取JSON数据。首先添加依赖: ```groovy implementation 'com.android.volley:volley:1.2.1' ``` 创建Volley的RequestQueue,然后发送JsonRequest: ```java ...
在Android开发中,有时我们需要从服务器获取JSON数据并解析它以展示在应用中。这个"android 动态解析获取json数据的键值对"的项目就是针对这种情况的一个实例,主要展示了如何在Eclipse环境下,不预先创建JSON键值...
本篇文章将详细介绍如何创建一个实用的JSON数据解析封装类,以便快速有效地处理各种形式的JSON数据。 首先,我们需要引入一个JSON库,Android SDK本身包含了org.json库,但为了更强大的功能和更好的性能,推荐使用...
在Android中,我们经常从服务器获取JSON数据。通常,我们使用HttpURLConnection或OkHttp发送HTTP请求,然后在回调中处理响应的JSON字符串。例如,使用OkHttp: ```java OkHttpClient client = new OkHttpClient(); ...
JSON(JavaScript Object Notation)和Gson是Android开发中常用的数据序列化和反序列化工具,...以上就是关于“Android之json和gson数据解析最完整的代码例子”的详细介绍,希望对您在学习和使用JSON及Gson时有所帮助。
- **Android操作JSON格式数据**:Android提供了Gson库、org.json库等工具来解析和生成JSON数据。 - **Android数据库操作**:SQLite是Android内置的轻量级数据库,可以用于持久化数据。 - **Android Activity操作**:...
在Android应用中,通常我们会从网络获取JSON数据,如API接口响应。使用`HttpURLConnection`或第三方库如`Retrofit`、`Volley`发送HTTP请求后,将返回的JSON字符串通过`JsonUtil.fromJson`转换为对应的Java对象,然后...
对于本地JSON文件解析,首先我们需要读取JSON数据。在Android中,这通常通过`AssetManager`类完成,因为JSON文件常存放在`assets`目录下。 ```java try { AssetManager assetManager = getAssets(); InputStream ...
首先客户端从服务器端获取json数据 1、利用HttpUrlConnection 代码如下:/** * 从指定的URL中获取数组 * @param urlPath * @return * @throws Exception */ public static String readParse(String urlPath) ...
最近在整理自己写过的一些应用,发现这个也许对大家有帮助,android通过http页面获取json标准格式数据并且解析其中对象的全过程,其中包含android连接http页面方法,android解析json格式数据方法,json标准化格式...
在Android开发中,JSON...总的来说,Android中的JSON数据解析是通过理解JSON结构,结合`org.json`库或Gson库,以及适当的网络请求库来实现的。合理使用这些工具,能有效地处理和展示从服务器获取的JSON数据。
本教程聚焦于老罗讲解的Android解析JSON数据的源码分析,这对于深入理解JSON处理以及优化应用程序性能至关重要。 首先,我们需要了解JSON的基本结构。JSON是一种基于键值对的格式,数据以键值对的形式存储,如{"key...
本篇将深入探讨如何在Android平台上使用org.json库解析JSON数据。 一、JSON基础知识 1. JSON数据结构:主要包括对象(Object)和数组(Array)。对象由键值对组成,用花括号{}包围;数组是一组有序的值,用方括号[]...
在Android开发中,将远程服务器返回的JSON数据异步解析并绑定到ListView是常见的操作,这一过程涉及到网络请求、数据解析、UI更新等多个关键环节。本文将深入探讨这些知识点。 首先,我们需要理解“异步”处理的...
"ISBN获取及JSON数据解析"这个主题涵盖了两个关键知识点:通过API获取数据以及解析JSON格式的数据。 首先,我们来看如何利用豆瓣API V2.0来获取书籍信息。豆瓣API是一个开放的接口,允许开发者通过特定的请求方式...
在模块对应的包名下创建JSON数据对应的实体类WeatherInfo类,实体类中的成员名称要与JSON数组的key值一致,并为每个属性添加get和set方法。public String getTemp() {return temp;}public void setTemp(String temp)...
在Android开发中,Gson库是Google提供的一个强大的JSON数据解析工具,它使得Java对象与JSON数据之间的转换变得简单易行。本篇文章将详细介绍如何在Android应用中使用Gson库解析JSON数据,以便更好地理解这一关键知识...
在Android开发中,从服务器端获取JSON数据并进行解析是一项常见的任务,这涉及到网络通信、数据格式处理以及数据解析等多个方面。以下是对这一过程的详细解释: ### 一、从服务器端获取JSON数据 #### 1. 使用...
本教程将深入讲解如何在Android应用中获取、解析并显示JSON数据,同时结合Springboot构建JSON服务器。 一、Android JSON获取 在Android应用中,通常使用HttpURLConnection或第三方库如OkHttp来发送HTTP请求,获取...
**二、JSON数据解析** JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。在Java中,可以使用`org.json`库来解析JSON数据。 1. **导入JSON库**:在...