让用户在Parse中启用/禁用推送通知

时间:2015-02-22 18:07:53

标签: android parse-platform push-notification

我正在开发一款使用Parse推送通知的Android应用。在我的设置菜单上,我想要一个选项来启用/禁用推送通知,但我找不到使用解析库执行此操作的方法。我在网上找到的所有方法似乎都在使用现已弃用的方法。

我没有使用频道,我只是在启动应用时调用Parse.initialize。

你知道我怎么能做到这一点吗?为了澄清我只需要知道如何使设备忽略传入通知。

此致

1 个答案:

答案 0 :(得分:1)

好的,我已经找到了解决方案。我必须做的是实现我自己的Receiver来取代Parse的。

public class MyCustomReceiver extends ParsePushBroadcastReceiver {

   @Override
   public void onReceive(Context context, Intent intent) {
       super.onReceive(context,intent);
   }
}

然后在 AndroidManifest.xml 中替换此:

<receiver
        android:name="com.parse.ParsePushBroadcastReceiver"
        android:exported="false" >
        <intent-filter>
            <action android:name="com.parse.push.intent.RECEIVE" />
            <action android:name="com.parse.push.intent.DELETE" />
            <action android:name="com.parse.push.intent.OPEN" />
        </intent-filter>
</receiver>

用这个(把你的包名称):

<receiver
        android:name="your.package.name.MyCustomReceiver"
        android:exported="false" >
        <intent-filter>
            <action android:name="com.example.UPDATE_STATUS" />
            <action android:name="com.parse.push.intent.RECEIVE" />
            <action android:name="com.parse.push.intent.DELETE" />
            <action android:name="com.parse.push.intent.OPEN" />
        </intent-filter>
</receiver>

然后根据需要重写你的onReceive,例如,我所做的是:

@Override
public void onReceive(Context context, Intent intent) {
    SharedPreferences sharedPrefs = PreferenceManager.getDefaultSharedPreferences(context);
    if (!sharedPrefs.contains("NOTIF") || sharedPrefs.getBoolean("NOTIF", false))
        super.onReceive(context,intent);
}

SharedPreferences中的变量 NOTIF 表示该用户是否想要接收通知。