【问题标题】:call requires permission which may be rejected by user?呼叫需要权限,可能会被用户拒绝?
【发布时间】:2018-01-02 16:17:53
【问题描述】:
    private void getCurrentLocation()
    {
        mMap.clear();

        Location location = LocationServices.FusedLocationApi.getLastLocation(googleApiClient);
        if (location != null)
        {
            longitude = location.getLongitude();
            latitude = location.getLatitude();
            moveMap();
        }


    }

我是 Android 新手。我按照一些链接在谷歌地图上找到了我当前的位置。我在清单文件中写了权限,但错误消息询问我不知道如何解决的权限。我已经尝试过搜索,但我找不到任何东西。

【问题讨论】:

标签: android google-maps


【解决方案1】:

我在manifest文件中写了权限,但是错误信息询问权限我不知道如何解决

你需要ask run time permission

因为Android 6.0(API 级别 23) 开始,用户在应用运行时而不是在安装应用时授予应用权限。

代码

if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED ) {
                ActivityCompat.requestPermissions(this,
                        new String[]{Manifest.permission.ACCESS_COARSE_LOCATION},
                        MY_PERMISSION_ACCESS_COARSE_LOCATION);
  }

【讨论】:

  • 我尝试了这段代码,错误消息显示无法解析符号 MY_PERMISSION_ACCESS_COARSE_LOCATION
  • MY_PERMISSION_ACCESS_COARSE_LOCATION 是一个整数,您可以在其中给出任何值。尝试在代码顶部添加这样的内容。 int MY_PERMISSION_ACCESS_COARSE_LOCATION=100;
  • if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) { ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.ACCESS_COARSE_LOCATION}, MY_PERMISSION_ACCESS_COARSE_LOCATION); } 位置位置 = LocationServices.FusedLocationApi.getLastLocation(googleApiClient); if (location != null) longitude = location.getLongitude();纬度 = location.getLatitude();移动地图();
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-01-15
  • 1970-01-01
  • 1970-01-01
  • 2019-03-26
  • 1970-01-01
  • 1970-01-01
  • 2012-06-30
相关资源
最近更新 更多