Vam*_*lla 43 android push-notification google-cloud-messaging
我有一个应用程序,实现了推送通知.
我想了解为什么我们需要"GET_ACCOUNTS"(android.permission.GET_ACCOUNTS),同时实现GCM?一些用户对此权限提出了疑虑.我已经使用在清单此权限,因为它是在官方网站给出这里.
这个许可有多安全?如果我从我的清单中删除它,那么推送通知是否有效?
Pan*_*mar 61
它使用现有的Google服务连接.对于3.0之前的设备,这需要用户在其移动设备上设置自己的Google帐户.运行Android 4.0.4或更高版本的设备不需要Google帐户.
所以这是要求许可的原因
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
Run Code Online (Sandbox Code Playgroud)
阅读Google帐户.
阅读有关此GCM概述的更多信息
GCM无法再使用Google帐户登录.所以你不需要这个android.permission.GET_ACCOUNTS许可.
如果您使用的是GCM API,则GoogleCloudMessaging.register不再需要在任何Android版本上配置Google帐户.但是,如果您使用已弃用的库(GCMRegistrar.register),则旧版本(ICS之前)仍需要Google帐户.
有关详细信息,请访问https://groups.google.com/forum/#!topic/android-gcm/ecG-RfH-Aso.另一个similer线程是为什么GCM需要谷歌帐户登录才能用于低于4.0.4 OS的设备?
Era*_*ran 14
GCM不再需要GET_ACCOUNTS权限.曾经需要注册GCM,但最近的Play服务更新停止使用Google帐户,即使是在Froyo和Gingerbread上也是如此.如果您使用Play服务注册GCM(即使用GoogleCloudMessaging.register),则不再需要任何Android版本的此权限.如果您使用的是已弃用的库(GCMRegistrar.register),则仍需要4.0.4之前版本的Google帐户,这需要该权限.
来源(由Google开发人员发布在android-gcm Google Group上):
一些背景:
Froyo和Gingerbread注册在GoogleServicesFramework中实施,使用Google帐户进行注册.这导致了帐户未处于良好状态的人员的许多身份验证错误.
从ICS开始,GCM不依赖或使用Google帐户 - 您可以在添加帐户或没有任何帐户之前使用它.
"Play服务"更新正在所有设备上实施新方案 - 但似乎少数设备存在此问题,我们正在调查 - 但数量远低于旧方案的数字.
正如这里的其他人所说,GET_ACCOUNTAndroid设备需要低于4.0.4.
如果你像我一样安装了一个自动添加此权限的库但你不需要它,你可以AndroidManifest通过添加权限来告诉删除权限,tools:node="remove"如下所示:
在您的AndroidManifest.xml文件中,确保xmlns:tools它在manifest标记中定义的属性,然后使用removeset 添加权限:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
...>
...
<uses-permission android:name="android.permission.GET_ACCOUNTS" tools:node="remove" />
...
</manifest>
Run Code Online (Sandbox Code Playgroud)
或者警告说这对我来说实际上没有用,但我知道它对其他人有用.如果您可以看到我可能做错了或有任何更多信息,请发表评论!
*编辑:有一个错误报告打开以使此功能正常工作:https: //bugzilla.xamarin.com/show_bug.cgi?id = 48153
| 归档时间: |
|
| 查看次数: |
40447 次 |
| 最近记录: |