entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

1voto

Buen día, estoy desarrollando un aplicación para android e implemento el servicio de notificaciones de parse, pero no encuentro como desactivar dicho servicio usando un checkbox de preferencias tengo lo siguiente:
Un Preferencias.xml

<CheckBoxPreference
        android:key="op_push"
        android:defaultValue="true"
        android:title="Activar Notificaciones Push"
        android:summary="Si te son molestas las notificaciones aquí se desactivan"
        />

y en MainActivity.class evaluo:

if (!notification) {
            Toast.makeText(this, "Notificaciones desactivadas", Toast.LENGTH_LONG).show();

        }else
        {
            Toast.makeText(this, "Notificaciones activadas", Toast.LENGTH_LONG).show();
        }

pero no se como pausar las notificaciones de Parse. Gracias por la ayuda...

2votos

carlossevi comentado

Acabo de descubrir Parse.com en este momento, pero supongo que hay alguna parte del código de tu aplicación que es la que se encarga de solicitar la notificación. ¿No puedes controlar en ese momento si el usuario desea esas notificaciones?

Extracto de la documentación de Parse:

Sending notifications is often done from the Parse.com push console, the REST API or from Cloud Code. However, push notifications can also be triggered by the existing client SDKs. If you decide to send notifications from the client SDKs, you will need to set Client Push Enabled in the Push Notifications settings of your Parse app.

0voto

abrahamarq comentado

Muchas gracias por la pronta respuesta y efectivamente, estaba haciendo mal mi planteamiento en un momento compartiré como lo resolví, saludos!

1 Respuesta

2votos

abrahamarq Puntos420

Lo resolví de la siguiente manera:
En el AndroidManifests.xml remplace la siguiente linea:

android:name="com.parse.ParsePushBroadcastReceiver"

Quedando de esta forma:

<receiver android:name="your.package.name.Receiver"
        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>

Donde se hace referencia a Receiver, es el nombre del documento java donde se extiende ParsePushBroadcastReceiver, en el cual cree onPushOpen y onReceive.

En el onPushOpen redirijo a una actividad especifica y en el onReceive es donde evaluo si el usuario tiene activado el checkbox y de esta forma, si la respuesta es false entonces omite la notificación.

Así que el documento Receiver.java contiene esto:

public class Receiver extends ParsePushBroadcastReceiver {

@Override
protected void onPushOpen(Context context, Intent intent) {
//I use this to open the correct Activity, when the notification is open
}
@Override
public void onReceive(Context context, Intent intent) {
    SharedPreferences sharedPrefs = PreferenceManager.getDefaultSharedPreferences(context);
    if (!sharedPrefs.contains("op_push") || sharedPrefs.getBoolean("op_push", false))
        super.onReceive(context,intent);
}
}

Entonces cuando la notificación es Recibida por el dispositivo se le pregunta a Receiver.java !sharedPrefs.contains("op_push") || sharedPrefs.getBoolean("op_push", false, si cumple esto no se mostraran las notificaciones.

Basado en: Let user enable/disable Push Notifications in Parse

1voto

Peter comentado

Muchas gracias por compartir la solución.

Saludos.

1voto

abrahamarq comentado

Espero les sirva, saludos también.

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta