电话:0731-83595998
导航

Android编程之实现GPS定位

来源: 2017-12-21 14:52

 百度广告

  在几个月前,开发式手机联盟推出自己的Android手机雏形时,受到了极大的追捧。但是到现在还没有真机在市场上销售,Google为了鼓励开发人员来开发Android手机的应用程序,提供了1千万美金来奖励那些在Android开发中的获奖者。当然,并不是告诉读者如何去赢得大奖,而是帮助读者理解如何使用Android SDK来开发Android程序,其中包括如何使用XML布局来显示广西,从GPS组件中获得设备的位置等,在的最后将学习如何将文本显示在一个定制的视图上。

  一、准备工作

  要想开发Android程序,我们需要如下三种软件: 1. Eclipse Android SDK 开发Android程序的Eclipse 插件

  为了开始我们的工作,首先要安装Eclipse,然后从Google的网站获得Android SDK,并且安装Eclipse插件。

  二、Activity类

  每一种移动开发环境都有自己的基类。如J2ME应用程序的基类是midlets,BREW的基类是applets,而Android程序的基类是Activity。这个activity为我们提供了对移动操作系统的基本功能和事件的访问。这个类包含了基本的构造方法,键盘处理,挂起来恢复功能,以及其他底层的手持设备的访问。实质上,我们的应用程序将是一个Activity类的扩展。在中读者将会通过例子学习到如何使用Activity类来编写Android程序。下面是一个简单的继承Activity的例子。

 

 public class LocateMe extends Activity {
{
setContentView(R.layout.main);
public boolean onKeyDown(int keyCode, KeyEvent event)
return true;
}

  在上面程序中的onCreate方法将在应用程序第一次开始时调用。Bundle对象包含了任何用于建立参数或环境数据所需要的基本信息。Activity可以是全屏的,或是悬浮的。它们可以是嵌套的,但是每一部分基本是独立的。那么,也许有人会问,setContentView是做什么的呢?

|||

  三 View类

  View类是Android的一个超类,这个类几乎包含了所有的屏幕类型。但它们之间有一些不同。每一个view都有一个用于绘画的画布。这个画布可以用来进行任意扩展。为了方便起见,只涉及到了两个主要的View类型:定义View和Android的XML内容View。在上面的代码中,使用的是"Hello World" XML View,它是以非常自然的方式开始的。

  如果我们查看一下新的Android工程,就会发现一个叫main.xml的文件。在这个文件中,通过一个简单的XML文件,描述了一个屏幕的布局。这个简单的xml文件的内容

 

 

  上面的内容的功能看起来非常明显。这个特殊文件定义了一个相关的布局,这就意味着通过一个元素到另一个元素的关系或是它们父元素的关系来描述。对于视图来说,有一些用于布局的方法,但是在中只关注于上述的xml文件。

  RealtiveLayout中包含了一个填充整个屏幕的文本框(也就是我们的LocateMe activity)。这个LocateMe activity在默认情况下是全屏的,因此,文本框将继承这个属性,并且文本框将在屏幕的左上角显示。另外,必须为这个XML文件设置一个引用数,以便Android可以在源代码中找到它。在默认情况下,这些引用数被保存在R.java中,代码

 

 public final class R
public static final class layout
public static final int main=0x7f030001;
}
  
 

|||

  四、Android实例

  这个演示应用程序将演示了用户的当前的经度和纬度(在文本框中显示)。onCreate构造方法将和上面的例子基本相同,除了在其中加入了键盘处理,现在让我们看一下onKeyDown的代码。

 

 public boolean onKeyDown(int keyCode, KeyEvent event) {
{
}
getLocation();
}

  下面让我们来解释一下这段代码,首先,这段代码检查了当前被按下的键,但还没有开始处理。而是在getLocation方法中处理这一切的。然后,将装载flag标志以及调用getLocation方法,下面是getLocation方法的代码。

 

 private void getLocation()
Location loc;
LocationProvider locPro;
setContentView(R.layout.laoding);
proList = locMan.getProviders();
loc = locMan.getCurrentLocation(locPro.getName());
Lon =  (float)loc.getLongitude();
setContentView(customView);

  到这为止,程序开始变得更有趣了。但是不幸的是,Google关于之方面的文档还是比较少了。在程序的变量声明之后,我们需要演示一些装载信息。R.layout.loading符合了另一个简单的XML布局视图。通过简单地调用setContentView方法可以使用信息重绘屏幕。

  读者要注意的是:在编译时,Android会预先将所有的XML布局数据包装起来。如果我们想在编译后变化布局属性,按着规定,我们必须在源程序中做这些事。

  获得LocationManager的唯一方法是通过getSystemService()方法的调用。通过使用LocationManager,我们可以获得一个位置提供者的列表。在一个真实的手持设备中,这个列表包含了一些GPS服务。实际上,我们希望选择更强大,更精确,最后不带有其他附加服务的GPS。现在,在模拟器中提供了一个用于测试的GPS,这个GPS来自San Francisco。定制的GPS文件可以可以被上传,并进行测试。如果我们要测试更复杂的应用,来自San Francisco的GPS可能并不适合。

  目前我们可以使用位置管理器和位置提供者进行getCurrentLocation的调用。这个方法返回本机的当前位置的一个快照,这个快照将以Location对象形式提供。在手持设备中,我们可以获得当前位置的经度和纬度。现在,使用这个虚拟的手持设备,我们可以获得这个例子程序的最终结果:建立了显示一个定制的视图。 

|||

  五、使用定制视图

  在最简单的窗体中,一个Android中的视图仅仅需要重载一个onDraw方法。定制视图可以是复杂的3D实现或是非常简单的文本形式。下面的CreateView方法列出了上面看到的内容。

 

 public void CreateView() {
}

 

 public class CustomView extends View
LocateMe overlord;
{
overlord = pCtx;
public void onDraw(Canvas cvs)
Paint p = new Paint();
String sLon = "Longitude: " + overlord.getLon();
cvs.drawText(sLon, 32, 44, p);
}


  六、Android展望

  从纯粹的开发观点看,Android是一个非常强大的SDK。它使用基于XML的布局和定制视图联合了起来。并可以使用滚动条、地图以及其他的组件。所以的这一切都可以被重载,或由开发人员来定制。但它所提供的文档非常粗糙。在文档中并没有象SMS等技术,但是从整体上来看Android SDK,还是非常有希望的。也非常符合Google承诺的"First Look"SDK。现在我们要做的就是等待Google发布第一个基于Android的手机,并使用它。

编辑推荐:

下载Word文档

温馨提示:因考试政策、内容不断变化与调整,长理培训网站提供的以上信息仅供参考,如有异议,请考生以权威部门公布的内容为准! (责任编辑:长理培训)

已有 22658 名学员学习以下课程通过考试

网友评论(共0条评论)

请自觉遵守互联网相关政策法规,评论内容只代表网友观点!

精品课程

更多
10781人学习

免费试听更多

相关推荐
图书更多+
拼团课程更多+
热门排行
  • 长理培训微信公众号
    每日推送精彩考试资讯
    长按二维码识别
    微信搜索“ 长理培训
  • 加入QQ群一起来考国网!
    QQ群号:223940140
    点击进入

长理培训客户端 资讯,试题,视频一手掌握

去 App Store 免费下载 iOS 客户端