国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

鴻蒙應用開發(fā)學習:獲取手機位置信息

這篇具有很好參考價值的文章主要介紹了鴻蒙應用開發(fā)學習:獲取手機位置信息。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

一、前言

移動應用中經(jīng)常需要獲取設備的位置信息,因此在鴻蒙應用開發(fā)學習中,如何獲取手機的位置信息是必修課。之前我想偷懶從別人那里復制黏貼代碼,于是在百度上搜了一下,可能是我輸入的關(guān)鍵字不對,結(jié)果沒有找到想要的資料。于是我只能到官網(wǎng)上學習相關(guān)的開發(fā)文檔(位置服務開發(fā)指南),自己摸索著做了,經(jīng)過一番的學習,并在真機上測試,實現(xiàn)了獲取手機位置信息的功能。特記之,已備忘。

二、實現(xiàn)方法

1. 首先在module.json5(位于entry/src/main文件夾下)文件中添加應用權(quán)限。

鴻蒙應用開發(fā)學習:獲取手機位置信息,鴻蒙應用開發(fā)學習,學習筆記,項目實戰(zhàn),學習,鴻蒙系統(tǒng),華為,鴻蒙,harmonyos,智能手機

"requestPermissions": [
      {
        "name": "ohos.permission.APPROXIMATELY_LOCATION"
      },
      {
        "name": "ohos.permission.LOCATION"
      }
    ]

2、在pages文件夾下通過“新建-page”創(chuàng)建一個ets文件,在文件中設置一個獲取位置的按鈕和用于顯示位置信息的文本組件(具體代碼見最后)

3、在這個ets文件導入?@ohos.geoLocationManager

import geoLocationManager from '@ohos.geoLocationManager'

4、實例化LocationRequest對象,用于告知系統(tǒng)該向應用提供何種類型的位置服務,以及位置結(jié)果上報的頻率。我看了開發(fā)文檔后,選擇了方式二中的代碼。

let requestInfo = {
  'priority': geoLocationManager.LocationRequestPriority.ACCURACY,
  'timeInterval': 0,
  'distanceInterval': 0,
  'maxAccuracy': 0
};

5、創(chuàng)建一個函數(shù),這個函數(shù)通過點擊界面中獲取位置按鈕來執(zhí)行。函數(shù)實現(xiàn)以下功能:

(1)實例化Callback對象,用于向系統(tǒng)提供位置上報的途徑。

(2)啟動定位。

(3)獲取系統(tǒng)緩存的最近一次歷史定位結(jié)果。

(4)結(jié)束定位。

注:函數(shù)中的幾個this開頭的變量在主程序中以@state方法修飾,用于在文本控件中顯示獲取到的位置信息。

getLocation() {
    let locationChange = (location) => {
      console.log('locationChanger: data: ' + JSON.stringify(location));
    };
    geoLocationManager.on('locationChange', requestInfo, locationChange);
    try {
      let location = geoLocationManager.getLastLocation();
      this.mLatitude = location.latitude.toString();
      this.mLongitude = location.longitude.toString();
      this.mAltitude = location.altitude.toString();
      this.mAccuracy = location.accuracy.toString();
      this.mSpeed = location.speed.toString();
      this.mTimeStamp = location.timeStamp.toString();
      this.mDirection = location.direction.toString();

      console.log("testTag", "獲取到的位置信息:")
      console.log("testTag", "緯度latitude " + this.mLatitude)
      console.log("testTag", "經(jīng)度longitude " + this.mLongitude)
      console.log("testTag", "海拔(米)altitude " + this.mAltitude)
      console.log("testTag", "精度(米)accuracy " + this.mAccuracy)
      console.log("testTag", "速度(米/秒)speed " + this.mSpeed)
      console.log("testTag", "時間戳timeStamp " + this.mTimeStamp)
      console.log("testTag", "方向direction " + this.mDirection)
    } catch (err) {
      console.error("errCode:" + err.code + ",errMessage:" + err.message);
    }
    geoLocationManager.off('locationChange', locationChange);
  }

6、真機調(diào)試,安裝了APP后,需要進入手機的“設置-應用和服務-應用管理”,找到安裝的APP,手動將位置信息權(quán)限打開。(因為我還沒有找到,自動開啟權(quán)限的方式,只能手動開啟)。

鴻蒙應用開發(fā)學習:獲取手機位置信息,鴻蒙應用開發(fā)學習,學習筆記,項目實戰(zhàn),學習,鴻蒙系統(tǒng),華為,鴻蒙,harmonyos,智能手機

7、運行APP,進入手機定位頁面,點擊“獲取位置”按鈕,界面顯示出了獲取到的相關(guān)信息。

鴻蒙應用開發(fā)學習:獲取手機位置信息,鴻蒙應用開發(fā)學習,學習筆記,項目實戰(zhàn),學習,鴻蒙系統(tǒng),華為,鴻蒙,harmonyos,智能手機

三、源代碼

最后上我寫的ets文件源代碼。文章來源地址http://www.zghlxwxcb.cn/news/detail-820752.html

import geoLocationManager from '@ohos.geoLocationManager'



let requestInfo = {
  'priority': geoLocationManager.LocationRequestPriority.ACCURACY,
  'timeInterval': 0,
  'distanceInterval': 0,
  'maxAccuracy': 0
};

@Entry
@Component
struct LocationPage {
  @State mLatitude: string = '' // 經(jīng)度
  @State mLongitude: string = '' // 緯度
  @State mAltitude: string = '' // 海拔(米)
  @State mAccuracy: string = '' // 精度(米)
  @State mSpeed: string = '' //速度(米/秒)
  @State mTimeStamp: string = '' // 時間戳
  @State mDirection: string = '' // 方向

  build() {
    Column() {
      Button("獲取位置")
        .width(100)
        .backgroundColor($r('app.color.button_bgColor_lightBlue'))
        .margin({ top: 50, bottom: 20 })
        .onClick(() => {
          this.getLocation()
        })
      Text('當前位置')
        .fontSize(24)
      Grid() {
        GridItem() {
          Text('經(jīng)度:')
        }

        GridItem() {
          Text(this.mLatitude)
        }

        GridItem() {
          Text('緯度:')
        }

        GridItem() {
          Text(this.mLongitude)
        }

        GridItem() {
          Text('海拔:')
        }

        GridItem() {
          Text(this.mAltitude)
        }

        GridItem() {
          Text('精度:')
        }

        GridItem() {
          Text(this.mAccuracy)
        }

        GridItem() {
          Text('速度:')
        }

        GridItem() {
          Text(this.mSpeed)
        }

        GridItem() {
          Text('時間:')
        }

        GridItem() {
          Text(this.mSpeed)
        }

        GridItem() {
          Text('方向:')
        }

        GridItem() {
          Text(this.mDirection)
        }
      }
      .columnsTemplate('1fr 4fr')
      .rowsGap(15)
      .padding(10)
      .width('90%')
    }
    .width('100%')
    .backgroundColor('#EAEAEA')
    .padding(10)
  }

  // 獲取手機當前位置
  getLocation() {
    let locationChange = (location) => {
      console.log('locationChanger: data: ' + JSON.stringify(location));
    };
    geoLocationManager.on('locationChange', requestInfo, locationChange);
    try {
      let location = geoLocationManager.getLastLocation();
      this.mLatitude = location.latitude.toString();
      this.mLongitude = location.longitude.toString();
      this.mAltitude = location.altitude.toString();
      this.mAccuracy = location.accuracy.toString();
      this.mSpeed = location.speed.toString();
      this.mTimeStamp = location.timeStamp.toString();
      this.mDirection = location.direction.toString();

      console.log("testTag", "獲取到的位置信息:")
      console.log("testTag", "緯度latitude " + this.mLatitude)
      console.log("testTag", "經(jīng)度longitude " + this.mLongitude)
      console.log("testTag", "海拔(米)altitude " + this.mAltitude)
      console.log("testTag", "精度(米)accuracy " + this.mAccuracy)
      console.log("testTag", "速度(米/秒)speed " + this.mSpeed)
      console.log("testTag", "時間戳timeStamp " + this.mTimeStamp)
      console.log("testTag", "方向direction " + this.mDirection)
    } catch (err) {
      console.error("errCode:" + err.code + ",errMessage:" + err.message);
    }
    geoLocationManager.off('locationChange', locationChange);
  }

}

到了這里,關(guān)于鴻蒙應用開發(fā)學習:獲取手機位置信息的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務器費用

相關(guān)文章

  • 鴻蒙HarmonyOS4.0開發(fā)應用學習筆記

    鴻蒙HarmonyOS4.0開發(fā)應用學習筆記

    鴻蒙harmony開發(fā)文檔指南 DevEco Studio下載地址 選擇或者安裝環(huán)境 選擇和下載SDK 安裝總覽 編輯器界面 2.1變量聲明 2.2條件控制 2.3循環(huán)迭代 2.4函數(shù) 2.5類和接口 2.6模塊開發(fā) 通用功能抽取到單獨的ts文件,每個文件都是一個模塊(module)。 模塊可以相互加載,提高代碼復用性。 crea

    2024年02月04日
    瀏覽(28)
  • OpenHarmony開源鴻蒙學習入門 - 基于3.2Release 應用開發(fā)環(huán)境安裝

    OpenHarmony開源鴻蒙學習入門 - 基于3.2Release 應用開發(fā)環(huán)境安裝

    基于目前官方master主支,最新文檔版本3.2Release,更新應用開發(fā)環(huán)境安裝文檔。 一、安裝IDE: 1.IDE安裝的系統(tǒng)要求 2.IDE下載官網(wǎng)鏈接 (IDE下載鏈接) 3.下載完成后進行IDE安裝。 【最新的IDE,HarmonyOS和OpenHarmony的IDE已經(jīng)統(tǒng)一,只是SDK管理分開】 IDE的依賴有 node.js 和 Ohpm。 有兩種

    2024年02月15日
    瀏覽(31)
  • OpenHarmony鴻蒙原生應用開發(fā),ArkTS、ArkUI學習踩坑學習筆記,持續(xù)更新中。

    OpenHarmony鴻蒙原生應用開發(fā),ArkTS、ArkUI學習踩坑學習筆記,持續(xù)更新中。

    結(jié)論:在BIOS里面將Hyper-V打開,DevEco Studio模擬器可以成功啟動。 如果在另外的文件中引用組件,需要使用export導出,并在使用的頁面import該自定義組件。 1.自定義組件(被導入組件) 2.組合組件(引用自定義組件) 1、main_pages.json配置文件配置靜態(tài)路由地址,配置文件

    2024年02月04日
    瀏覽(21)
  • 鴻蒙應用開發(fā)學習:改進小魚動畫實現(xiàn)按鍵一直按下時控制小魚移動和限制小魚移出屏幕

    鴻蒙應用開發(fā)學習:改進小魚動畫實現(xiàn)按鍵一直按下時控制小魚移動和限制小魚移出屏幕

    一、前言 近期我在學習鴻蒙應用開發(fā),跟著B站UP主黑馬程序員的視頻教程做了一個小魚動畫應用,UP主提供的小魚動畫源代碼僅僅實現(xiàn)了移動組件的功能,還存在一些問題,如默認進入頁面是豎屏而頁面適合橫屏顯示;真機測試發(fā)現(xiàn)手機的狀態(tài)欄影響到了返回鍵對按鍵事件的

    2024年02月01日
    瀏覽(23)
  • HarmonyOS 鴻蒙應用開發(fā)(十一、面向鴻蒙開發(fā)的JavaScript基礎)

    HarmonyOS 鴻蒙應用開發(fā)(十一、面向鴻蒙開發(fā)的JavaScript基礎)

    ArkTS 是HarmonyOS(鴻蒙操作系統(tǒng))原生應用開發(fā)的首選語言。它是用于構(gòu)建用戶界面的一種TypeScript方言,擴展了TypeScript以適應HarmonyOS生態(tài)系統(tǒng)的UI開發(fā)需求。ArkTS 融合了TypeScript的靜態(tài)類型系統(tǒng)和現(xiàn)代UI框架的設計理念,為開發(fā)者提供了一種更安全高效的方式來編寫HarmonyOS應用。

    2024年02月20日
    瀏覽(35)
  • 鴻蒙實戰(zhàn):ArkTs 開發(fā)一個鴻蒙應用

    鴻蒙實戰(zhàn):ArkTs 開發(fā)一個鴻蒙應用

    學習過的 ArkTs 知識點,一步一步開發(fā)一個小的鴻蒙應用示例,涉及到 ?ArkTs 語法、注解 @Entry 、 @Component 、 @state 、路由、生命周期、 @Prop 、 @Link 、常用組件的使用等等知識點。 要開發(fā)一個鴻蒙應用,首先我們需要知道 系統(tǒng)是如何找到頁面的啟動入口 。 鴻蒙如何啟動應用

    2024年02月22日
    瀏覽(25)
  • 【HarmonyOS】開發(fā)一個可以看小姐姐的鴻蒙應用 鴻蒙開發(fā)入門

    【HarmonyOS】開發(fā)一個可以看小姐姐的鴻蒙應用 鴻蒙開發(fā)入門

    先整張效果圖,丑點是丑點,但可以用,買不起鴻蒙系統(tǒng)手機的我,只配用虛擬機。 要說目前最火的手機操作系統(tǒng),要我來看的話那必然是鴻蒙無疑。16號剛剛結(jié)束了第五次鴻蒙內(nèi)測,在看到這次的內(nèi)測名單之后,居然有970的機器,這是不是說明俺這手里奮戰(zhàn)了三年的榮耀

    2024年02月15日
    瀏覽(28)
  • 鴻蒙應用開發(fā)--事件

    代碼書寫步驟 根據(jù)需求調(diào)用響應的接口 獲取組件ID 設置監(jiān)聽事件 編寫點組件觸發(fā)后的動作 事件分類 單擊事件 雙擊事件 長按事件 滑動事件 調(diào)用接口 獲取組件ID 設置監(jiān)聽事件 當前類作為接口實現(xiàn)類 當前類繼承接口,在本類中重寫父類方法。 定義接口實現(xiàn)類 重新寫一個類

    2024年02月09日
    瀏覽(45)
  • 鴻蒙(HarmonyOS)應用開發(fā)指南

    鴻蒙(HarmonyOS)應用開發(fā)指南

    1.1 簡介 鴻蒙 (即 HarmonyOS ,開發(fā)代號 Ark ,正式名稱為華為終端鴻蒙智能設備操作系統(tǒng)軟件)是華為公司自 2012 年以來開發(fā)的一款可支持鴻蒙原生應用和兼容 AOSP 應用的 分布式操作系統(tǒng) 。該系統(tǒng)利用“分布式”技術(shù)將 手機、電腦、平板、電視、汽車和智能穿戴 等多款設備

    2024年02月02日
    瀏覽(59)
  • 鴻蒙3.0應用開發(fā)體驗

    鴻蒙3.0應用開發(fā)體驗

    鴻蒙os3.0發(fā)布以來,華為官方開始主推ets+arkui開發(fā)模式,逐漸拋棄java,為以后去安卓化做鋪墊,但目前在筆者體驗來看,仍需要大力完善,還有很長的路要走! 什么是ets?ts是js的超集,而ets是ts的超集!ets后綴的文件中可以使用鴻蒙SDKapi的能力,就這么簡單!而arkui則與Flu

    2024年02月09日
    瀏覽(18)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包