Location Based Services - LBS

Slides:



Advertisements
Similar presentations
湖南城市学院 Android 智能手机开发 信息科学与工程学院 主 讲:李 旎. 湖南城市学院 课程结构 Android 平台概述 – 平台介绍 开发环境: – 构建 Android 开发环境 Android 的基本操作 -- 五种基本操作 应该程序: – 应用程序结构 典型应用: – 用户界面 –
Advertisements

开发入门 一个 android 初学者的心得与体会. 前言 两周前张老师通知我说,让我根据教练助手的学习与开发的过程讲下 android 开发的心得与体会,我觉得自己在这么多 Android 前辈大佬面前讲 android 简 直是班门弄斧。由于是刚入门的初学者,水平有限,很多方面还很不足,对 错误或不周到之处欢迎批评指正。顺便还得提下,我这个标题有抄袭积聚童.
Java 程序设计 案例教程 北京大学出版社 第 01 章. Java 程序设计案例教程 第 01 章 Java 语言与面向对象程序设计 Java 语言的历史 Java 语言的特点 Java 程序的分类 Java 环境配置 Eclipse 的安装 Java 程序的调试 教学目标.
Android ADT + Android SDK Eclipse Eclipse 編輯器 JAVA JAVA 開發工具.
Android开发入门 -----第一个Android程序 主讲:李晓蕾
©wequick GalenLin All rights reserved
第一章 Android简介与环境搭建 QQ号: QQ群: (Android编程入门) 网络资源:
Android环境搭建 倚动软件工厂实验室 网络课程地址:
實驗五:多媒體播放器選單介面.
Part 2 開發Android應用程式的流程
OUTLINE Android app Devolpment Flow App反組譯解說 實例 簽名詳解 DalvikByteCode
位置與地圖應用 此投影片為講解Android如何取得定位經緯度和使用Google Map地圖.
第二章 B4A程式語言的開發環境 課程名稱:程式設計 授課老師:李春雄 博士
第1章 导论 倚动实验室.
ArrayAdapter & Spinner
Android發展環境Eclipse安裝
Android App 系統開發教學 Luna 陳雯琳 2014/12/18
使用Android Studio 開發Android App 靜宜大學資管系 楊子青
建立Android新專案 建國科技大學 資管系 饒瑞佶 2010/10.
厦门大学数据库实验室 报告人:谢荣东 导师:林子雨 2014年8月30日
APP課程:Android程式設計開發環境與工具介紹
實驗四:單位轉換程式.
第2章 建立Android應用程式 2-1 Java語言、XML文件與Android 2-2 建立第一個Android應用程式
CH3 Eclipse.
Android + JUnit 單元測試 建國科技大學資管系 饒瑞佶 2012/8/19V4.
第17章 使用B4J建立跨平台應用程式 17-1 認識B4J整合開發環境 17-2 下載與安裝B4J開發環境
實驗十三:顯示目前經緯度位置.
Ch06 再談選單元件 物件導向系統實務.
Android程式開發準備 Android智慧型手機程式設計 建國科技大學 資管系 饒瑞佶 2012/4 V1 2012/8 V2
Android開發環境建置與設定 Android智慧型手機程式設計 程式設計與應用班 建國科技大學 資管系 饒瑞佶 2012/4 V1
第10章 App微信分享的实现 倚动实验室.
安裝與設置 Android 發展環境 靜宜大學資工系 蔡奇偉副教授 ©.
第11章 Android GPS位置服务与地图编程
第9章 位置服务与地图应用.
第一个Android程序 本讲大纲: 1、创建Android应用程序 2、Android项目结构说明 3、运行Android应用程序
第8章 Android内容提供者(ContentProvider)应用
Chapter 6 Advanced UI Design.
Ch5 Android應用程式的主要組成.
Android介面設計 Android智慧型手機程式設計 建國科技大學 資管系 饒瑞佶 2012/4 V1 2012/8 V2
Android Intent 建國科技大學 資管系 饒瑞佶 2011/1.
Chapter 6 進階UI設計.
ContentProvider與資料共享
第9章 使用意圖啟動活動與內建應用程式 9-1 意圖的基礎 9-2 使用意圖啟動活動
Android 课程讲义 智能手机开发
CH7 佈局、按鈕與文字編輯元件.
Android + Service 建國科技大學 資管系 饒瑞佶.
Android開發環境建置與設定 建國科技大學 資管系 饒瑞佶 2010/10.
實驗十四:顯示與控制地圖.
Android平台開發環境安裝.
建立Android新專案 Android智慧型手機程式設計 程式設計與應用班 建國科技大學 資管系 饒瑞佶 2012/4 V1
第6章 建立Android使用介面 6-1 介面元件的基礎 6-2 Android的事件處理 6-3 按鈕元件 6-4 文字元件
Android 视频教程简介.
建國科技大學 資管系 饒瑞佶 2012/4 V1 2012/8 V2 2013/2 V3 2014/9 V4
第10章 GPS位置服务与地图编程.
Android智慧型手機程式設計實務應用班
實驗十一:待辦事項程式 (儲存在手機上).
主编:钟元生 赵圣鲁.
JAVA 编 程 技 术 主编 贾振华 2010年1月.
Chapter 5 Basic UI Design.
Android視窗介面 建國科技大學 資管系 饒瑞佶 2010/10.
課程網站
進階UI元件:Spinner與接合器 靜宜大學資管系 楊子青
第二章 Java语法基础.
Android視窗介面 建國科技大學 資管系 饒瑞佶 2010/10.
實驗十六:匯出APK安裝檔與軟體上架.
第二章 Java基本语法 讲师:复凡.
用Intent啟動程式中的其他Activity、運用WebView顯示網頁 靜宜大學資管系 楊子青
第2章 Java语言基础.
Usage Eclipse 敏捷方法工具介紹 實驗室網站:
進階UI元件:Spinner與接合器 靜宜大學資管系 楊子青
Presentation transcript:

Location Based Services - LBS 環境建置與行動定位

Outline 環境建置 建立LBS Project

Chapter1. 環境建置

環境建置 1.下載JDK安裝系統環境 JDK Click Download

環境建置 1.下載JDK安裝系統環境 點擊開啟下載連結

點擊Accept,選擇底下適合系統的安裝檔 環境建置 1.下載JDK安裝系統環境 點擊Accept,選擇底下適合系統的安裝檔 下載後並完成安裝

環境建置 2-1.下載開發環境IDE套件 ADT Bundle ADT Bundle 工具整合兩項工具 Android SDK (Android Development Tools) ADT Bundle ADT Bundle 工具整合兩項工具 Android SDK Eclipse IDE 在過去Android剛開始盛行的時候,需要自行整合Google Release的 Android SDK 還有 Eclipse,當初在建置開發環境時是相當耗時的,不久後Google推出了整合板的開發工具,也就是目前所看到的 ADT Bundle,它將開發Android 的SDK及相關套件與Eclipse整合在一起,讓開發者可以省去不少功夫。 Click Download

環境建置 2-1.下載開發環境IDE套件 下載ADT Bundle 並解壓縮

環境建置 2-2. ADT Bundle 整合工具簡介 Android SDK Android SDK 包括了開發 Android 手機應用程式所需的相關 Android APIs ( 又稱為 Framework APIs 或 Android SDK APIs ) 與核心工具 Android SDK提供許多Android的版本的API,供開發者選擇欲開發的版本,每個版本所採用的API的方法不盡相同,所以在建立專案時需要審慎評估 2014年Google統計市占率 2.3.x :21.2% 4.0.x :16.9% 4.1.x :35.9% 4.2.x :15.4% 4.3 :7.8% 4.4 :1.4%

環境建置 2-2. ADT Bundle 整合工具簡介 Eclipse IDE Eclipse 是由 Open Source Community 所創建的開發軟體,並被廣泛地使用在許多不同的領域。例如:可作為 Java 應用程式與 Android App 撰寫程式的開發環境 Eclipse 可以提供不同程式語言開發良好的整合環境與良好的擴充性(Plugin),比如說 Java,php,Android, C 等等,皆有透過Eclipse整合出一套適合的開發環境,讓開發者可以專注並快速開發程式。

環境建置 3-1. Eclipse 初始設定 點擊啟動Eclipse

環境建置 3-1. Eclipse 初始設定 預設Eclipse設定檔與專案的路徑

點擊Android SDK Manager,準備下載開發套件 環境建置 3-1. Eclipse 初始設定 1 2 點擊Android SDK Manager,準備下載開發套件

環境建置 3-1. Eclipse 初始設定 勾選上述套件並點擊Install安裝

選擇Accept License並點擊Install 環境建置 3-1. Eclipse 初始設定 選擇Accept License並點擊Install

點擊Install New Software 環境建置 3-2. Eclipse 相關套件安裝 1 2 點擊Install New Software

https://dl-ssl.google.com/android/eclipse/ 環境建置 3-2. Eclipse 相關套件安裝 1 點擊Add 3 2 輸入名稱與網址 https://dl-ssl.google.com/android/eclipse/ Next 4

環境建置 3-2. Eclipse 相關套件安裝 Accept 2 Next 1 3 Finish

Chapter2. 建立 LBS Project

點擊 Android Application Project 建立 LBS Project 1. 新增專案 3 1 2 點擊 Android Application Project

建立 LBS Project 1. 新增專案 輸入完成後,點擊Next Application 應用程式名稱 Project Name 在Eclipse中的專案目錄中的名稱 Package Name (以網域名方式命名) Minimum Required SDK 最低支援 Android SDK的版本 Target SDK 最高支援 Android SDK的版本 Compile With 選擇 Android SDK版本編譯 Theme 選擇 Android UI 風格 ※Compile 若有要開發 Google Maps 請選擇Google APIs 輸入完成後,點擊Next

專案建立在Eclipse的Workspace 建立 LBS Project 1. 新增專案 1 建立啟動圖示 建立Activity 2 專案建立在Eclipse的Workspace 3 輸入完成後,點擊Next 4

建立 LBS Project 1. 新增專案 點擊Next

建立 LBS Project 1. 新增專案 1 建立Activity 選擇模板(下一頁補充說明) 2 點擊Next 3

Scrollable Tabs +Swipe 建立 LBS Project 1. 新增專案-模板補充 BlankActivity None Fixed Tabs+Swipe Dropdown Scrollable Tabs +Swipe 在專案當中預設都使用None,其他的模板可依據需求選擇

建立 LBS Project 1. 新增專案-模板補充 Full Screen Activity Master/Detail Flow

建立 LBS Project 1. 新增專案 點擊Finish

建立 LBS Project 1. 新增專案 Project建立成功

建立 LBS Project 2. 專案目錄結構簡介 src/ gen/ 應用程式開發者所撰寫的 Java 程式碼之檔案目錄 此存放Eclipse IDE會自動依據專案資源建立的索引類別檔 (勿手動變更檔案內容)

建立 LBS Project 2. 專案目錄結構簡介 Google APIs Android Private Libaries Android Dependencies Android應用程式開發所需的類別函式庫

建立 LBS Project 2. 專案目錄結構簡介 assets/ bin/ 主要是用來存放應用程是使用到的一些不需要編譯處理的原始資料 用於存放需要打包到應用程式的靜態檔,以便部署到設備中, 例如HTML靜態資料或文字檔案或文字字型, 在/assets目錄下面不會在R.java里面自動產生ID,所以讀取assets目錄下面的資源文件需要提供路徑 bin: 存放Android 專案編譯過後所產生的相關檔案 bin/ 子檔案資料夾則為儲存Android手機應用程式輸出成執行檔的相關檔案

建立 LBS Project 2. 專案目錄結構簡介 libs/ res/ 主要放置 Android SDK 主要函式庫之外的第三方函式庫目錄 res/ 此目錄內容是Android應用程式使用到的所有資源,包含一些常用的子目錄,例: layout, drawable, values

建立 LBS Project 2. 專案目錄結構簡介 res/drawable-xxx/ res/layout/ res/values/ 不同尺寸的JPEG或PNG格式的圖形檔案,可以使用在高、中和低不同解析度的行動裝置螢幕 res/layout/ Drawable:因為每個Device都有不同的螢幕尺寸,因此若放置一張圖片要因應這種狀況,則需要在不同的dpi資料夾上放置相對應解析大小的圖,如此才不會讓圖片產生失真的問題。 Layout:在此定義所有User Interface的元件,例如TextView,Button等等..。 Value:有些String的內容可能會經常異動,若直接寫死在不同的程式碼內,爾後若有更改的需求,則必須從每個程式碼來調整,但若將文字定義於此,則可藉由索引ID的方式在程式碼內呼叫。因此若要更改文字即從定義的檔案更改一次即可。 定義使用介面版面配置的XML檔 res/values/ 定義程式使用的陣列、尺寸、色彩和樣式的常數值

建立 LBS Project 2. 專案目錄結構簡介 AndroidManifest.xml AndroidManifest.xml檔案是一個十分重要的檔案,它提供Android作業系統所有應用程式的基本資訊,權限資料以及其它與應用程式相關的屬性資料

建立 LBS Project 3. Android 定位 Android 有三種定位方式 人造衛星定位(GPS) 無線網路定位(Wi-Fi) 根據環繞地球的衛星訊號進行定點定位,不需網路連線,只要偵測到應該都很精準,但必須在戶外可以接收天空訊號處。 手機基地台定位 根據手機偵測到的附近電信基地台位置進行定位,但因為電信基地台之間距離較遠,所以計算出來的位置也會有比較大的誤差範圍。(偵測基地台本身不需網路連線,但要讀取基地台位置資料時就需要網路連線。) Wi-Fi 定位 根據手機偵測到的附近無線網路基地台位置進行定位,因為 Wi-Fi 基地台非常密集,所以定位相對準確。(偵測 Wi-Fi 基地台時不需進行 Wi-Fi 連線,但為了讀取基地台位置資料庫,你仍然需要有行動上網。)

建立 LBS Project 3-1. Android 定位效果 耗電量/啟動 GPS Wi-Fi 3G 低 普通 高 精準度/啟動 GPS 1.想要省電,也沒有精確定位需求:只要開啟行動網路,打開地圖一樣可以定位。 2.想要省電,但有精確定位需求:開啟行動網路、 Wi-Fi 偵測,打開地圖就能準確定位。 3.需要很精確的定位需求(或是開車時要衛星導航):開啟行動網路、開啟 Wi-Fi 偵測、開啟 GPS。 附註:這邊常常也有一個誤解:以為 Wi-Fi 定位必須連上 Wi-Fi,其實不然,你只需要「開啟偵測 Wi-Fi 基地台」即可,不需真的連上,就可以利用偵測的過程完成地點地位了。

建立 LBS Project 4. LBS Project 權限設定 點擊add新增啟用權限 打開AndroidManifest.xml 3 1 2

共Add三組Uses Permission 建立 LBS Project 4. LBS Project 權限設定 共Add三組Uses Permission 點擊Uses Permission

建立 LBS Project 4. LBS Project 權限設定 先點選要設定的選項 1 選擇要開啟的權限 2

建立 LBS Project 4. LBS Project 權限設定 共啟用三組權限 INTERNET 網路存取權限 ACCESS_FINE_LOCATION GPS定位權限 ACCESS_COARSE_LOCATION 無線網路定位

建立 LBS Project 5.Android LBS APIs LocationListener (Interface) abstract void onLocationChange (Location location) Called when the location has changed. onLocationChange: 監聽Provider位置有更動後,便執行此方法內的動作。 onProviderDisabled: 當手機的Provider被關閉後,便執行此方法內的動作。 abstract void onProviderDisabled (String provider) Called when the provider is disabled by the user.

建立 LBS Project 5.Android LBS APIs LocationListener (Interface) abstract void onProviderEnabled (String provider) Called when the provider is enabled by the user. onProviderEnabled : 當手機的Provider被啟用後,便執行此方法內的動作。 onStatusChanged : 當Provider的狀態發生變動(例如GPS從有訊號的狀態變成失去訊號的狀態) ,便會執行此方法內的動作。 abstract void onStatusChanged (String provider, int status, Bundle extras) Called when the provider status changes.

requestLocationUpdates 建立 LBS Project 5.Android LBS APIs LocationManager (Object) 無論是GPS或網路定位,我們都可以利用LocationManager輕易地幫使用者定位 More.. String getBestProvider (Criteria criteria, boolean enabledOnly) Returns the name of the provider that best meets the given criteria. getBestProvider : 取得在Criteria的條件下最佳的Provider,若沒有符合條件則會根據電力、精準度、方位、速度或高度來選擇提供者。 requestLocationUpdates: 此方法可設定時間間隔多久(ms) ,距離每隔多少(m) 更新使用者的位置,並透過啟用LocationListener來監聽反應。 在這邊僅舉兩種最普遍呼叫的方法,若想要更深入了解LocationManager另外有提供的API,則請參考More所連結到官方的詳細說明 String requestLocationUpdates (String provider, long minTime, float minDistance, LocationListener listener) Register for location updates using the named provider, and a pending intent.

建立 LBS Project 6.建立第一支 HelloLBS 功能:擷取當前位置的經緯度

建立 LBS Project 6.建立第一支 HelloLBS 1 2 3 4 5 6 7 8 9 10 11 <FrameLayout> //FrameLayout底下新增 2 3 <TextView 4 android:id="@+id/textView1" 5 android:layout_width="wrap_content" 6 android:layout_height="wrap_content" 7 android:text="helloLBS" /> 8 //在FrameLayout區域內建立一個TextView 9 10 </FrameLayout> 11 打開activity_main.xml

建立 LBS Project 6.建立第一支 HelloLBS 1 2 3 4 5 6 7 打開MainActivity.java 8 9 import android.location.Criteria; 3 import android.location.Location; 4 import android.location.LocationListener; 5 import android.location.LocationManager; 6 //多import四個類別物件 7 8 public class MainActivity … //底下新增參數 9 private LocationManager lms; 10 private TextView textView1; 11 打開MainActivity.java

建立 LBS Project 6.建立第一支 HelloLBS 1 2 3 4 5 6 7 8 9 10 11 12 } private void locationServiceInitial() 2 { 3 lms = (LocationManager) getSystemService(LOCATION_SERVICE); 4 //取得系統定位服務 5 String bestProvider = lms.getBestProvider(new Criteria(), true); 6 //使用getBestProvider來取得最佳提供者,Default 取得精準度最高的GPS 7 lms.requestLocationUpdates(bestProvider, 1000, 1,new MyLocationListener()); 8 /* requestLocationUpdates parameter: 9 1. 定位方式 2. 時間間隔多久(ms)更新 10 3. 距離每隔多少(m)更新 4. 監聽器觸發的物件 (LocationListener ) 11 */ 12 }

建立 LBS Project 6.建立第一支 HelloLBS 1 2 3 4 5 6 7 8 9 10 11 12 private class MyLocationListener implements LocationListener { 2 @Override 3 public void onLocationChanged(Location location) { 4 //當地點改變時 5 textView1.setText(""+location.getLatitude()+","+location.getLongitude()); 6 //當地點改變時取得經緯度並且顯示在TextView上 7 } 8 9 public void onProviderDisabled(String arg0){ 10 //當GPS或網路定位功能關閉時 11 12

建立 LBS Project 6.建立第一支 HelloLBS 1 2 3 4 5 6 7 8 9 10 11 12 @Override public void onProviderEnabled(String arg0) { 3 //當GPS或網路定位功能開啟 4 } 5 6 public void onStatusChanged(String arg0, int arg1, Bundle arg2) { 7 //定位狀態改變 8 9 10 11 12

建立 LBS Project 6.建立第一支 HelloLBS 1 2 { 3 4 5 6 7 8 9 10 11 12 protected void onCreate … //onCreate方法底下新增 2 { 3 4 //當GPS或網路定位功能開啟 5 textView1=(TextView)findViewById(R.id.textView1); 6 //將textView物件指定到textView1 7 locationServiceInitial(); 8 //呼叫剛才撰寫初始化的LBS服務 9 10 } 11 12

建立 LBS Project 7.執行程式 HelloLBS Android手機 Android模擬器

建立 LBS Project 7-1.手機執行程式 HelloLBS 事前準備 已啟動網路或GPS 準備原廠USB連接線 手機請先打開偵錯模式 確認電腦上已安裝手機的驅動 在手機上執行程式前須做四項檢查 1.要確認手機上網路或GPS是否已啟用 2.電腦要辨識手機,盡可能要準備原廠的USB連接線,否則可能發生USB裝置無法辨識之問題 3.手機要打開Development偵錯模式,才有辦法偵測到手機 4.電腦上必須要安裝有手機的驅動,若沒有驅動請至該手機廠牌的官方下載並安裝

建立 LBS Project 7-1.手機執行程式 HelloLBS 2 1

確認USB連接後是否處於Online狀態 建立 LBS Project 7-1.手機執行程式 HelloLBS 1 確認USB連接後是否處於Online狀態 2

建立 LBS Project 7-1.手機執行程式 HelloLBS 1 2 3

建立 LBS Project 7-1.手機執行程式 HelloLBS

建立 LBS Project 7-1.手機執行程式 HelloLBS 若執行出現此錯誤,請執行以下步驟 目前最新版本的Android ADT,在執行程式前可能會發生此錯誤,若有此錯誤訊息產生,請依照上述流程移除Android Dependencies 1 2 3

建立 LBS Project 7-2.模擬器執行程式 HelloLBS Android模擬器

建立 LBS Project 7-2.模擬器執行程式 HelloLBS 1 2

建立 LBS Project 7-2.模擬器執行程式 HelloLBS 1

建立 LBS Project 7-2.模擬器執行程式 HelloLBS

建立 LBS Project 7-2.模擬器執行程式 HelloLBS 1 2 3

建立 LBS Project 7-2.模擬器執行程式 HelloLBS 1 2 勾選所建立之模擬器 3

建立 LBS Project 7-2.模擬器執行程式 HelloLBS 輸入經緯度後,模擬送出定位狀態 1 2 輸入經緯度模擬GPS定位的位置 3 輸入經緯度後,模擬送出定位狀態

建立 LBS Project 7-3. HelloLBS 執行結果 模擬器執行結果 手機執行結果