为什么 Android 6 上没有授予 GCM 权限?

2024-02-27

背景

我正在尝试调查办公室的应用程序需要更改其权限,以便更好地支持 Android 6。

问题

我发现哪些权限需要确认,哪些不需要,除了以下一项:

<uses-permission android:name=".permission.C2D_MESSAGE"/>

似乎我寻找的任何地方都没有提到此权限,因为它不是自动授予的,但我找不到用户可以在哪里启用它作为确认。

我尝试过的

为了找到默认授予的权限和未授予的权限,我只是调用了以下代码:

private void checkPermissionsOfApp(String packageName) {
    PackageManager pm = getPackageManager();
    try {
        final ApplicationInfo applicationInfo = pm.getApplicationInfo(packageName, PackageManager.GET_META_DATA);
        Log.d("AppLog", "Listing all permissions of app with PackageName: " + applicationInfo.packageName);
        PackageInfo packageInfo = pm.getPackageInfo(applicationInfo.packageName, PackageManager.GET_PERMISSIONS);
        //Get Permissions
        String[] requestedPermissions = packageInfo.requestedPermissions;
        if (requestedPermissions != null) {
            for (String permission : requestedPermissions) {
                boolean permissionGranted = pm.checkPermission(permission, packageName) == PackageManager.PERMISSION_GRANTED;
                Log.d("AppLog", "permission:" + permission + " permissionGranted:" + permissionGranted);
            }
        }
    } catch (NameNotFoundException e) {
        e.printStackTrace();
    }
}

和电话:

checkPermissionsOfApp(getPackageName());

使用上面的代码,它会因有问题的权限而崩溃,但是当使用 ContextCompat.checkSelfPermission 时,它会说它未被授予。

问题

怎么会这样? 我如何授予应用程序此权限? 有没有在任何地方提到过?


The 文档 https://developers.google.com/cloud-messaging/android/client2015年10月更新后,仍然提示需要签名权限。

也可以看看未收到来自 GCM (Android) 的推送通知 https://stackoverflow.com/questions/33133277/not-receiving-push-notifications-from-gcm-android

正如 @CommonsWare 提到的,这似乎不是新的运行时权限检查的一部分,或者至少不被视为“危险”权限,因此应该自动授予。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么 Android 6 上没有授予 GCM 权限? 的相关文章

随机推荐

  • 如何切换标记?

    我制作标记的代码 for var marker in markers var posMarker new google maps Marker position new google maps LatLng markers marker l
  • 重定向多个标准输入?

    我有三个文件 名为一 二 三 其中一项包含 1 3 2 两个包含 4 6 5 三包含 7 9 8 当我发出以下命令时 sort lt One lt Two lt Three 我得到输出 7 8 9 但是当我发出以下命令时 sort One
  • 使用 Inno Setup 安装时应用程序无法运行

    我正在开发桌面数据库应用程序 使用rdlc报告和reportviewer 开发过程中一切顺利 reportviewer 可以顺利显示所有数据 我使用 Inno Setup 部署应用程序 但是当我安装该应用程序时 报告查看器不显示数据 当数据
  • jsPDF/html2canvas 通常会丢失空格和文本错位

    我正在使用 html2canvas 和 jsPDF 生成 pdf 客户端 无论我选择什么设置 我都会在 html 到 pdf 渲染中丢失字母空格 有设置可以解决这个问题吗 我已经检查了 API 并更改了我能想到的所有可能的设置 但间距没有改
  • 如何从android服务获取返回值

    我遇到的问题是我不知道如何从服务中获取返回值 为什么我想要从服务返回值是我想在活动页面中显示这个返回值 以下是我的服务文件 返回值是retvalue public class SyncService extends Service priv
  • iPhone ios 上的 swift 3 中的弹出窗口

    我正在尝试使用以下代码制作弹出菜单 import UIKit class BeobachtungViewController UIViewController UIPopoverPresentationControllerDelegate
  • Android N 预览版不允许传输至 myserver.com 的明文 HTTP 流量

    昨天我获得了 Android N 预览版的新升级 自从我升级后 我就无法再启动我的应用程序了 java io IOException Cleartext HTTP traffic to myserver com not permitted
  • 如何在Windows中保存.env文件?

    我尝试保存文件 env文件扩展名 但我看不到任何 env另存为下拉选项中的文件扩展名 我也尝试将其重命名为 env但它被保存为文本文件 参见屏幕截图 我该如何解决这个问题 如果您使用 Windows 要保存扩展名与您正在使用的工具的默认扩展
  • 在 SQL 中编写左/右 JOIN 时,您是否使用 OUTER 关键字?

    我经常看到有人这样写SQL SELECT from TableA LEFT OUTER JOIN TableB ON ID1 I2 我自己简单写一下 SELECT from TableA LEFT JOIN TableB ON ID1 I2
  • Jetpack Compose 中可调整大小的 BasicTextField

    有没有办法在 Jetpack Compose 中生成可调整大小的 BasicTextField 以便在用户输入或删除字符时其宽度会环绕文本大小 他们已经解决了 flutter 的类似问题 但我没有找到如何为 Compose 解决这个问题 F
  • 通过 Entity Framework 6.0、Fluent API 和 DataAnnotations 重用所需属性的列

    我有一个基类 public class BaseClass public int Id get set 和两个派生类 public class Foobar BaseClass Required public int Whatever ge
  • HealthKit 中的错误:错误 Domain=com.apple.healthkit Code=100“无法打开数据库”UserInfo= {NSLocalizedDescription=无法打开数据库}

    尝试使用 HealthKit API 进行授权时 我们在某些设备上遇到错误 对 HKHealthStore requestAuthorizationToShareTypes 的调用始终失败 并出现以下错误 并且系统生成的 允许访问 Heal
  • Spark 2 的 hbase-spark

    我想要进行全面扫描hbase from Spark 2 using Scala 我没有固定的目录定义 因此库为SHC https github com hortonworks spark shc不是一个选择 我的逻辑选择是使用 hbase
  • Android,如何创建上下文菜单...

    在这里我写了一些代码但没有得到输出 请告诉我为什么不显示该上下文菜单 我在哪里做错了 请指导我 提前谢谢 更多选项卡菜单 xml menu menu
  • Unity 同一物体上的多个碰撞器

    我在同一个游戏对象上使用多个盒子碰撞器 问题是 是否可以使用单独引用每个碰撞器gameObject getComponent enabled false 请记住 我的碰撞器很少 我希望其中一些碰撞器保持启用状态 而其他碰撞器将被禁用 我所做
  • 通过 jest mock 测试 catch 块

    我试图通过玩笑来测试异步 redux 操作的 catch 块 但是在模拟中抛出一个 catch 会导致整个测试失败 我的行动如下 export function loginUser username password return asyn
  • 使用 Google Apps 脚本操作 DOM

    是否可以隐藏 display none 某些标签并使用 Google Apps 脚本更改 Gmail 下拉列表中的标签顺序 标签 移动 不会 Google Apps 脚本在服务器端运行 它无法访问 Gmail Calendar 或 Shee
  • XStream arrayList 与 XML 之间的转换

    我目前不知道问题出在哪里 第一次使用 xml 我在将 ArrayList 放入 xml 文件并从中取出它时遇到了一些问题 我发现了这个 我尝试以同样的方式做 如何使用 XStream 将对象列表转换为 XML 文档 https stacko
  • Python自动选择串口(适用于Arduino)

    目前 Python 程序必须知道设备 Arduino 位于哪个端口 然后 Python 才能与设备进行通信 Problem 每当设备拔出并重新插入时 其 COM 端口都会发生变化 因此必须再次向 Python 提供正确的串行端口 以便它找到
  • 为什么 Android 6 上没有授予 GCM 权限?

    背景 我正在尝试调查办公室的应用程序需要更改其权限 以便更好地支持 Android 6 问题 我发现哪些权限需要确认 哪些不需要 除了以下一项