首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >离子允许定位所有时间的API级别29

离子允许定位所有时间的API级别29
EN

Stack Overflow用户
提问于 2020-08-31 18:48:05
回答 3查看 2.7K关注 0票数 4

我试图在我的离子型应用程序上使用API级别29,我要求应用程序要求用户提供“允许任何时间”的位置。我把所有建议的修改都加进去了。

我的AndroidManifest.xml:

代码语言:javascript
运行
复制
 <uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION">
 <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION">
 <uses-permission android:name="android.permission.ACTIVITY_RECOGNITION">
 <uses-permission android:name="android.permission.PERMISSION.FOREGROUND_SERVICE">

我的app.component.ts:

代码语言:javascript
运行
复制
initializeApp() {
    this.platform.ready().then(() => {
      this.statusBar.styleDefault();
      this.splashScreen.hide();
      this.setProviders();
      this.checkBackgroundPermission();
    });
  }

private async checkBackgroundPermission() {
    try {
      const result = await this.androidPermissions.checkPermission(this.androidPermissions.PERMISSION.ACCESS_BACKGROUND_LOCATION);
      if (!result || result.hasPermission === false) {
        this.requestPermissions();
      }
    } catch (error) {
      this.requestPermissions();
    }
  }

 private async requestPermissions() {
    try {
      const data = await this.androidPermissions.requestPermissions([
        this.androidPermissions.PERMISSION.ACCESS_BACKGROUND_LOCATION,
        this.androidPermissions.PERMISSION.ACCESS_COARSE_LOCATION,
        this.androidPermissions.PERMISSION.ACCESS_FINE_LOCATION,
        this.androidPermissions.PERMISSION.ACTIVITY_RECOGNITION,
        this.androidPermissions.PERMISSION.FOREGROUND_SERVICE
      ]);
      if (!data.hasPermission) {
        throw new Error('No permission');
      }
    } catch (error) {
      await this.alertService.showAlert(
        'Background location',
        'We need background location access in order to continue.'
      );
      this.signOut();
    }

然而,当我以Api 29为目标时,它并不总是显示允许位置的请求。

但是如果我使用Api级别28,它会显示我需要的权限。

对此有什么建议吗?

EN

Stack Overflow用户

发布于 2022-02-14 23:51:27

将这个添加到platforms\android\app\src\main\AndroidManifest.xml

代码语言:javascript
运行
复制
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />

  1. Geolocation.java文件中的更改(地理定位
  2. :

)

代码语言:javascript
运行
复制
String [] permissions = { Manifest.permission.ACCESS_COARSE_LOCATION, Manifest.permission.ACCESS_FINE_LOCATION }

  • 将其替换为:

代码语言:javascript
运行
复制
String [] permissions = { Manifest.permission.ACCESS_COARSE_LOCATION, Manifest.permission.ACCESS_FINE_LOCATION,  Manifest.permission.ACCESS_BACKGROUND_LOCATION };
票数 0
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63676512

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档