對Android手機全新性能全預覽
目前市場上發(fā)布的Android手機,已經(jīng)全面對Android的指南針、攝像頭預覽、加速度傳感器與GPS子系統(tǒng)做出了進一步的提高,下面文章將對其功能進行了全面的介紹了解。
獲得位置管理器看起來好像挺簡單的,但是還是得牢記一些事項。首先,我們也許只能在UI主線程中請求位置管理器。我們要么在有關(guān)動作的onCreate調(diào)用中請求LocationManager對象。
要么使用LocationManager請求創(chuàng)建一個運行于主線程的可執(zhí)行對象。為簡單起見,下面的示例代碼將從一個動作的onCreate方法中注冊LocationManager更新。如您所見,這里聲明了一個LocationManager對象.。
使用getSystemService獲得您的對象,然后調(diào)用了requestLocationUpdates。您可能想知道位置更新時需要哪些參數(shù)。首先,您告訴系統(tǒng),您想使用系統(tǒng)中GPS裝置的位置更新功能。然后,您告訴它您希望多長時間更新一次(本例時間間隔為100ms)。
并且每當移動一米以上時就更新。這樣,Android手機就能迅速識別他們的移動情況并調(diào)整它們與其他對象的位置關(guān)系。***,傳入實現(xiàn)LocationListener接口的類的實例。為位置更新傳遞請求后,LocationListener類將收到初始位置,繼之以后來位置的改變情況。下面是我們的LocationListener:
- <html>
- <head>
- <title>PageTitle</title>
- </head>
- <body>
- Thecontentofthebodyelement.
- </body>
- </html>
- 就如Android的XML布局一樣,所有的元素都是結(jié)構(gòu)化的,能夠通過樹形結(jié)構(gòu)來表示:
- <?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>
在上面的代碼中,我們唯一需要關(guān)心的就是onLocationChanged這個方法。然而,我們還會介紹這個對象的其它方法。以便您將這個對象復制到您自己的代碼中時能夠了解它們。 一旦衛(wèi)星鎖定了這個設備,方法onLocationChanged就會被調(diào)用,之后每經(jīng)過在請求更新時指定的時間間隔(本例中為100ms)后,就會調(diào)用一次。
每當位置更新時,都會帶來一個Location對象。我們通過這個類可以獲得目標的經(jīng)緯度,并完成許多重要事情。這里我們最感興趣的方法是getLatitude()、getLongitude()、bearingTo()與distanceTo()。使用這四個函數(shù),我們可以計算出任何隨后的位置的方位角,并確定出離您的距離有多遠。
- sensorMan = (SensorManager) ctx.getSystemService(Context.SENSOR_SERVICE);
- sensorMan.registerListener(listener,
- sensorMan.getDefaultSensor(Sensor.TYPE_ACCELEROMETER),
- SensorManager.SENSOR_DELAY_FASTEST);
我們調(diào)用了Android手機上下文對象(上述代碼中為ctx)的getSystemService方法。下面是用于方向監(jiān)聽器與加速度傳感器監(jiān)聽器的完整代碼。
【編輯推薦】