【问题标题】:How to enable and disable GCM in android?如何在android中启用和禁用GCM?
【发布时间】:2014-01-21 07:31:30
【问题描述】:

我在我的应用程序中使用 GCM 推送通知。我有一个屏幕,用户可以在其中启用或禁用通知。
谁能告诉我如何以编程方式启用和禁用 GCM。

我从这篇帖子Android GCM Enable/Disable 中看到了以下代码,但不清楚接收器

PackageManager pm = getApplicationContext().getPackageManager();
pm.setComponentEnabledSetting(receiver,
PackageManager.COMPONENT_ENABLED_STATE_ENABLED,PackageManager.DONT_KILL_APP);

提前致谢。

【问题讨论】:

  • 我可以像这样声明接收器吗 ComponentName receiver = new ComponentName(this, "com.google.android.gcm.GCMBroadcastReceiver");

标签: android push-notification google-cloud-messaging


【解决方案1】:

如果您指的是允许用户启用/禁用应用程序通知的 Android 设置(如果我没记错的话,添加到 Android 4.1),我认为您不能以编程方式进行更改。

但是,如果您指的是自己应用程序中的设置屏幕,则可以通过从 GCM (GoogleCloudMessaging.unregister) 取消注册来禁用通知。这应该会阻止消息到达您在该设备上的应用,直到您再次注册到 GCM。

或者,如果您希望您的应用继续接收消息但停止向用户显示消息,您可以在共享首选项中存储一个标志,指示 GCM 是否已启用。然后处理传入 GCM 消息的代码将检查此标志以决定如何处理该消息。

【讨论】:

  • Google 开发人员不建议使用unregister“你应该很少(如果有的话)需要调用这个方法”
【解决方案2】:

根据谷歌 unregister() 方法已弃用。

改为使用InstanceID.deleteToken()InstanceID.deleteInstanceID()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-02-17
    • 2011-09-04
    • 1970-01-01
    • 2016-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多