NativeScript / NativeScript/plugins

[Android] [@nativescript/geolocation] Cannot watch location. Call "enableLocationRequest" first

未關閉
#606 1 則留言 0 個 reaction 已指派 0 人 在 GitHub 檢視

還沒有人認領這個 Issue。

主要語言
TypeScript
星號
206
分支
123
平均合併
2 天 1 小時
30 天內合併 PR
1

描述

I call watchLocation properly after enableLocationRequest but I am getting Cannot watch location. Call "enableLocationRequest" first error message.

Other weird behavior:

  • It seems even if I allow the location permission, it forgets and requests it again.
  • the docs says watchLocation is now async in order to check for permissions before attempting to watch but this is meaningless this way, since still the callback sends the location, this part is very unclear, and I couldn't find any examples for v9
✔ Component nativescript has 8.8.2 version and is up to date.
✔ Component @nativescript/core has 8.8.6 version and is up to date.
✖ Component @nativescript/ios is not installed.
✔ Component @nativescript/android has 8.8.6 version and is up to date.
"@nativescript/geolocation": "^9.0.0",

Code:

    Geolocation.enableLocationRequest(true, true).then(() => {
      Geolocation.watchLocation(
        location => {
             console.log(location);
         },
        e => {
          console.log('watchLocation ERROR:', e);
        },
        {
          //Specifies desired accuracy in meters.
          desiredAccuracy: CoreTypes.Accuracy.any,
          updateDistance: 300,
          updateTime: 10000,
          minimumUpdateTime: 1000
        }
      ).then(()=>{
        console.log('WHAT IS THIS FOR?')
      })

UPDATE:
Downgrading to 8.3.1 solved all the issues and everything is working. I am on API 35.
So this is clearly a bug with 9.0.0 or the documentation is inaccurate and I should do something differently.

貢獻指南

開啟貢獻指南

從這裡開始

  1. 先讀完整個 Issue,再讀專案的貢獻指南。
  2. 在 Issue 下留言說明你要接手 —— 這能避免兩個人做同樣的事。
  3. Fork 儲存庫,在一個分支上完成修改。
  4. 送出 Pull Request,並在描述裡引用這個 Issue 編號。

研究方向

先在 Android API 35 上使用 @nativescript/geolocation 9.0.0 重現該範例,然後將其行為與 8.3.1 版進行比較。檢查 enableLocationRequest 和 watchLocation 流程,包括權限持久化;當監看成功且不再出現錯誤訊息,並且文件中記載的非同步行為清楚時,即表示完成。

由索引模型根據 Issue 內容生成。

評估

技術堆疊
android, typescript
領域
mobile-dev
Issue 類型
缺陷
難度
3/5
預估耗時
1-2 天
活躍度
停滯
描述清晰度
基本清楚
新手友好度
45/100

把新 issue 寄到你的電子郵件信箱

精選適合新手參與的 GitHub issue 摘要。