我对新的运行时权限模型仍然有些困惑。解析推送通知 (GCM) 的以下任何所需权限是否需要运行时权限?
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<permission android:protectionLevel="signature" android:name="com.parse.starter.permission.C2D_MESSAGE" />
<uses-permission android:name="com.parse.starter.permission.C2D_MESSAGE" />
最佳答案
在您上面列出的权限中,GET_ACCOUNTS 需要运行时检查,因为它的保护级别是危险的。
但问题是,虽然 GCM 不再需要 GET_ACCOUNTS 权限才能工作(我猜是从 7.5 Play Services 开始),但如果您使用 Parse Push Notifications,仍然需要它。
似乎为了让 Parse 提供与所有 Android 驱动设备的完全兼容性(即非基于 GCM 的设备,如 Kindle Fires,不支持 GCM,它们必须回退到自己的持久套接字实现,并且当然是 4.0.3 及以下版本的设备),Parse 仍然需要此权限和其他一些权限。
Parse 的一个人提到:
We require it being requested, aka being in AndroidManifest.xml, but don't require it being granted.
问题正在讨论中,您可能想看看这些主题:
https://github.com/ParsePlatform/Parse-SDK-Android/issues/129 https://parse.com/questions/android-use-only-gcm-dont-require-additional-permissions
关于java - 具有解析推送通知的 Android M 权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32109674/