目前市场上发布的Android手机,已经全面对Android的指南针、摄像头预览、加速度传感器与GPS子系统做出了进一步的提高,下面文章将对其功能进行了全面的介绍了解。
获得位置管理器看起来好像挺简单的,但是还是得牢记一些事项。首先,我们也许只能在UI主线程中请求位置管理器。我们要么在有关动作的onCreate调用中请求LocationManager对象。
要么使用LocationManager请求创建一个运行于主线程的可执行对象。为简单起见,下面的示例代码将从一个动作的onCreate方法中注册LocationManager更新。如您所见,这里声明了一个LocationManager对象.。
使用getSystemService获得您的对象,然后调用了requestLocationUpdates。您可能想知道位置更新时需要哪些参数。首先,您告诉系统,您想使用系统中GPS装置的位置更新功能。然后,您告诉它您希望多长时间更新一次(本例时间间隔为100ms)。
并且每当移动一米以上时就更新。这样,Android手机就能迅速识别他们的移动情况并调整它们与其他对象的位置关系。***,传入实现LocationListener接口的类的实例。为位置更新传递请求后,LocationListener类将收到初始位置,继之以后来位置的改变情况。下面是我们的LocationListener:
- <html>
- <head>
- <title>PageTitle</title>
- </head>
- <body>
- Thecontentofthebodyelement.
- </body>
- </html>
- 就如Android的XML布局一样,所有的元素都是结构化的,能够通过树形结构来表示:
- <?xmlversionxmlversion=”1.0″encoding=”utf-8″?>
- <LinearLayout
- http://schemas.android.com/apk/res/android
- android:orientation=”vertical”
- android:layout_width=”fill_parent”
- android:layout_height=”fill_parent”>
- <TextView
- android:layout_width=”wrap_content”
- android:layout_height=”wrap_content”
- android:text=”HelloWorld”/>
- </LinearLayout>
在上面的代码中,我们唯一需要关心的就是onLocationChanged这个方法。然而,我们还会介绍这个对象的其它方法。以便您将这个对象复制到您自己的代码中时能够了解它们。 一旦卫星锁定了这个设备,方法onLocationChanged就会被调用,之后每经过在请求更新时指定的时间间隔(本例中为100ms)后,就会调用一次。
每当位置更新时,都会带来一个Location对象。我们通过这个类可以获得目标的经纬度,并完成许多重要事情。这里我们最感兴趣的方法是getLatitude()、getLongitude()、bearingTo()与distanceTo()。使用这四个函数,我们可以计算出任何随后的位置的方位角,并确定出离您的距离有多远。
- sensorMan = (SensorManager) ctx.getSystemService(Context.SENSOR_SERVICE);
- sensorMan.registerListener(listener,
- sensorMan.getDefaultSensor(Sensor.TYPE_ACCELEROMETER),
- SensorManager.SENSOR_DELAY_FASTEST);
我们调用了Android手机上下文对象(上述代码中为ctx)的getSystemService方法。下面是用于方向监听器与加速度传感器监听器的完整代码。
【编辑推荐】