对于开发人员而言,取天气信息这是一个很常用的功能,要取到天气,首先要取到位置信息即经纬度。

怎样实现在android的平板上取到位置信息?我们有三种常用方式:第一种、通过wifi得到经纬度;第二种、通过基站:这个需要在手机和平板上安装sim卡;第三种、通过GPS:在室内难以取到,在室外才行。(需要说明的是谷歌的https ://www.google.com/loc/json取地址已经停用了。)

由于方式2要依赖SIM卡,方式3在室内效果太差,并且我们上网经常是通过wifi,所以这种方式最常用,我们就采用此方式。其实通过wifi上网时,google maps和baidu maps是通过无线路由器的mac地址(而不是wifi信号)定位的,这个原理网上有高人测试过,见http://www.diypda.com/forum.php?mod=viewthread&tid=114364&page=1

因为google地图由于GFW的原因不太好用,所以我们大方的采用baidu的API。

1、设置AndroidManfest.xml权限

<!-- 访问网络的权限 -->

<uses-permission android:name="android.permission.INTERNET" />

<!-- 访问精确位置的权限 -->

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

<!-- 访问网络状态的权限 -->

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

<!-- 访问WIFI网络状态的权限 -->

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />

<!-- 改变WIFI网络状态的权限 -->

<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />

2、导入baidumapapi.jar包

import com.baidu.mapapi.BMapManager;

import com.baidu.mapapi.LocationListener;

3、初始化设置BMapManager

mapManager = new BMapManager(this);

mapManager.init("授权key",new MKGeneralListener());

//mapManager.getLocationManager().setNotifyInternal(20, 5);

4、获取经纬度

mapManager.getLocationManager().requestLocationUpdates(new MyLocationListener());

mapManager.start();

在LocationListener中获取经纬度

class MyLocationListener implements LocationListener {

@Override

public void onLocationChanged(Location arg0) {

System.out.println(arg0.getLongitude());//经度
          System.out.println(arg0.getLatitude());//纬度

}

}

这样我们终于完成了取经纬度的动作,是为取天气的第一步。

第二步,通过经纬度获取Yahoo 代表城市的WOEID,例如我通过第一步取到我所在位置的经纬度分别为30.459723和114.427391,则通过地址

http://where.yahooapis.com/geocode?q=30.459723,+114.427391&gflags=R&appid=NrTfYV7e 可以返回一个详细的xml文件。

第三步,通过yahoo取得真实的天气信息(代码表示)

方式是访问地址http://weather.yahooapis.com/forecastrss?w=2163866&u=f ,其中2163866是在第二步中实现的。

第四步,将天气代码解析出来,这个非常简单。

转载于:https://blog.51cto.com/yanglinux/1132534

在android平板上取位置和天气的实现方式相关推荐

  1. android 平板的 dpi,Android平板上开发应用的一点心得——精确适配不同的dpi和屏幕尺寸...

    一.适配可行性 早在Android设计之初就考虑到了这一点,为了让app适应标准or山寨屏幕,google已经有一套成熟的解决方案.其中,有这么几个指标需要注意: (1)屏幕尺寸:单位inch,指的是 ...

  2. 安卓平板安装桌面linux,在Android平板上安装Ubuntu Linux

    当我看到tiny core linux的时候,我第一印象就是:这小家伙一定可以跑在android上: 然而,让我惊喜的是,ubuntu早已经跑在android上了! 参见: http://galaxy ...

  3. Android平板电脑使用评测

    放眼当今的平板电脑市场,除了占据主导地位的苹果iPad之外,最受用户欢迎的恐怕就是Android平板电脑了.据市场研究公司ABI Research的最新报告显示,在过去12个月里,Android平板电 ...

  4. 详述Google针对Android平板App发布的十大开发准则

    2019独角兽企业重金招聘Python工程师标准>>> 在Nexus 7出来之前,Android平板市场的低迷一直让开发者对设计好Android平板上的App兴趣缺缺.为了给自己的平 ...

  5. debian linux手机安装,在 Android 系统上安装 Debian Linux 与 R

    其实在 Android 平板上通过第三方软件 , 已经可以提供很多类似一般桌面 Linux 系统的工具了 . 常用的 Firefox.VLC. LibreOffice 以及 终端模拟器都有 Andro ...

  6. android 平板版 office,Android平板版Office评测:界面繁杂影响用户体验

    导语:上周,微软发布了大家期待已久的Office for Android应用.尽管只是预览版,但意味着Office应用距离登陆Android平板又近了一步.Infoworld网站发现,尽管Office ...

  7. 利用 RDP Wrapper 实现 Android 平板变身 Windows 平板

    tl;dr: 问题:有些资源用 Android 平板无法访问,RDP 至已有的 PC 又会导致账户被登出 解决思路:开启 RDP 多人登陆,利用一个单独的 RDP User 账户,通过微软自家的 RD ...

  8. android 平板桌面,给Android平板带点桌面系统体验:技德 Remix 平板 下月上市

    给Android平板带点桌面系统体验:技德 Remix 平板 下月上市 2015-01-27 21:50:31 29点赞 14收藏 18评论 此前在众测频道接受值友们检验的技德Remix Androi ...

  9. Android平板离线安装数据库Mariadb

    Android平板离线安装数据库Mariadb 一 .安装数据库Mariadb 安装Mariadb之前,先在Android平板上安装termux (1)先下载termux.apk安装 注意:安装ter ...

最新文章

  1. 利用circpedia 数据库探究circRNA的可变剪切
  2. 在Windows10上安装ROS并测试
  3. java使用jdbc调用hive出现The query did not generate a result set!
  4. 377. 组合总和 Ⅳ golang 动态规划
  5. python对时间日期做格式化
  6. 单片机人流统计装置的程序_单片机其实不难
  7. JavaScript 之 有关判断的方法
  8. 【Linux】tee命令
  9. 强化学习离轨策略:从失败中获得成功经验 - 以追女孩为例 | 采样率的数学意义
  10. selenium+python自动化,数据驱动实例
  11. boost asio异步通信
  12. Python 100 例
  13. linux路由器压力测试,Apache Bench Web 压力测试
  14. 人工智能系统的形式化验证技术研究进展与趋势
  15. 因需要**云音乐歌单转到apple music,不满**云音乐下载都是ncm格式,所以想办法转化格式
  16. [生存志] 第91节 鬼谷捭阖之策
  17. vue项目SEO优化
  18. python中如何输出空格换行_Python将文件中空格变成换行的方法如何做
  19. 蓝牙4.0、经典蓝牙、BT、BLE的关系与区别
  20. UCOSIII的任务管理

热门文章

  1. scala入门基础2
  2. linux sed给空文件首行插入_Linux系统中sed命令在文件某行前后添加内容的用法
  3. 跟我斗图,我用Python爬虫下载几个G的表情砸死你
  4. 非线性方程组牛顿迭代法matlab,matlab实现牛顿迭代法求解非线性方程组
  5. r语言 林元震_科学网—ASReml-R之简介 - 林元震的博文
  6. 倒排索引原理_拜托,面试请不要再问我分布式搜索引擎的架构原理!
  7. 宝塔linux计划任务ftp,宝塔面板定时备份网站及数据库至FTP存储空间图文教程
  8. 动态规划-最优二叉查找树
  9. 关于C++类实现哈夫曼树
  10. 模板 - 树上问题(树的直径、动态查询树的直径、树的重心)