当前位置: 首页 > 知识库问答 >
问题:

Map API v2:无权限[重复]

司马越
2023-03-14

这里是我的清单片段:

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

这里是我的片段:

@Override
    public void onMapReady(GoogleMap googleMap) {
        this.googleMap = googleMap;
        setInfoWindowAdapter();
        if (ContextCompat.checkSelfPermission(getActivity(), Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED) {
            this.googleMap.setMyLocationEnabled(true);
        } else {
            Toast.makeText(getActivity(), getString(R.string.no_permissions), Toast.LENGTH_LONG).show();
        }
    }

当我开始使用Android4.3时,地图运行良好。但如果我从Android 6.0开始,我会收到消息(Toast)`没有许可

共有2个答案

丌官霖
2023-03-14

第一:尝试使用此请求权限:

 boolean permissionGranted = ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED;
    if(permissionGranted) {
        // {Some Code}
    } else {
        ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, 200);
    }

第二:OnRequestPermissionsResultCallback的实现

...implements  ActivityCompat.OnRequestPermissionsResultCallback {

第三:重写onRequestPermissionsResult方法

 @Override
    public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
        switch (requestCode) {
            case 200: {
                if(grantResults[0] == PackageManager.PERMISSION_GRANTED) {
                    // {Some Code}
                }
            }
        }
    }
伊羽
2023-03-14

如果您在Android 6上测试您的应用程序,您的代码运行正常。您需要在Android 6上获得用户的运行时权限。以下是您的操作方法:

    int permissionCheck = ContextCompat.checkSelfPermission(MapActivity.this,
            Manifest.permission.ACCESS_FINE_LOCATION);
    if (permissionCheck != PackageManager.PERMISSION_GRANTED) {
        ActivityCompat.requestPermissions(MapActivity.this,
                new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, 1);
    } else {
          //permission is already granted
    }

@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String permissions[], @NonNull int[] grantResults) {
    switch (requestCode) {
        case 1: {
            if (grantResults.length > 0) {
                if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
                    //granted
                } else {
                    //not granted
                }
            } else {
                //not granted
            }
        }
        default:
            super.onRequestPermissionsResult(requestCode, permissions, grantResults);
    }
}
 类似资料:
  • } 有人能帮帮我吗?因为我已经在这里待了很长时间了?任何帮助都将不胜感激谢谢

  • 问题内容: 我知道Android 6.0具有新的权限,我知道可以使用类似这样的名称 今天,我看到了一个需要3个权限的Google应用:联系人,短信和摄像头。它正在制作第1-3页,并同时将它们一起调用以激活。 有人可以告诉我如何调用4个权限来同时激活短信,摄像头,联系人和存储吗? 示例(忘记了Google应用的名称:() 该应用需要短信,联系人和相机 该应用程序问我(并在第1-3页建立了对话框)激活

  • 我正在为我的站点创建一个配置文件图片上载功能,但由于某种原因,不想运行。 我尝试了多个论坛,测试了所有可能的不同方法,但没有运气。 因此,首先,我检查所选文件是否有有效的扩展名,如果有,它将用microtime散列文件临时名(出于安全考虑)。然后,我将扩展连接到结尾,中间有一个句号,即输出将是。 然后通过将文件变量连接到目录的末尾来创建一个文件路径变量。 然后,通过传递和变量(就像您应该做的那样)

  • 有什么建议吗?它不工作在模拟器或当我在我的手机上运行它。

  • 我想知道如何在单个请求上添加多个权限。这是关于Marshmallow版本的Android。

  • 理念 Yearning自2.1.7版本之后采用权限组的方式进行权限授权,权限最低下放至数据源。 Yearning中用户先以角色的形式分为三大类,分别为 提交人/操作人/超级管理员。其中超级管理员角色为可见管理页面角色, 提交人/操作人为非可见管理页面角色。通过角色Yearning在细粒度权限划分之前先将用户分类。使管理类权限不会出现在使用者细粒度权限划分中 可根据每个用户的实际需求配置相应ddl/