Problema al hacer clic notificaciones generadas desde el SDK de MOCAHola buen dia, estoy trabajando con MOCA SDK en android, el SDK inicia bien pero sin embargo al enviarle específicamente un video URL o HTML5, este no genera acción alguna cuando se encuentra en segundo plano
La notificación se genera pero al hacer click sobre ella, no me muestra nada:
Utilizando el event listener realizo un custom sobre las alertas pero en las demás notificaciones las dejo por defecto razón por la cual no he logrado entender la razón:
En la consola de android me muestra :
06-07 15:25:44.075 24877-25239/com.procibernetica.moca A/ACTION: html
06-07 15:25:44.125 24877-25239/com.procibernetica.moca A/ACTION: URL
Efectivamente a generado las alarmas
Pero al hacer clic la consola me muestra lo siguiente:
06-07 15:28:15.265 479-493/? W/BroadcastQueue: Permission Denial: broadcasting Intent { act=com.moca.push.ACTION_PUSH_RECEIVE dat=intent://moca/action/GvJA3ZOnTRq04rZTzn15CQ flg=0x10 cmp=com.procibernetica.moca/com.innoquant.moca.push.MOCAPushReceiver bnds=[63,290][657,375] (has extras) } from com.procibernetica.moca (pid=-1, uid=10109) requires com.google.android.c2dm.permission.SEND due to receiver com.procibernetica.moca/com.innoquant.moca.push.MOCAPushReceiver
06-07 15:28:43.025 479-493/? W/BroadcastQueue: Permission Denial: broadcasting Intent { act=com.moca.push.ACTION_PUSH_RECEIVE dat=intent://moca/action/PQH24yPZTMuE8juAh2uxEw flg=0x10 cmp=com.procibernetica.moca/com.innoquant.moca.push.MOCAPushReceiver bnds=[63,290][657,375] (has extras) } from com.procibernetica.moca (pid=-1, uid=10109) requires com.google.android.c2dm.permission.SEND due to receiver com.procibernetica.moca/com.innoquant.moca.push.MOCAPushReceiver
Pero en mi manifest tengo declarado el Receiver:
<receiver
android:name="com.innoquant.moca.push.MOCAPushReceiver"
android:exported="true"
android:permission="com.google.android.c2dm.permission.SEND">
<intent-filter>
<action android:name="com.innoquant.moca.push.ACTION_PUSH_RECEIVE" />
<action android:name="com.innoquant.moca.push.ACTION_PUSH_DISMISSED" />
</intent-filter>
</receiver>
Mi listener:
package com.procibernetica.moca.control.notificaciones;
import android.content.Intent;
import android.net.Uri;
import android.util.Log;
import com.facebook.AccessToken;
import com.innoquant.moca.MOCA;
import com.innoquant.moca.MOCAAction;
import com.innoquant.moca.MOCAProximityService;
import com.procibernetica.moca.R;
import com.procibernetica.moca.control.Utilidades;
import com.procibernetica.moca.persistencia.DetallesDeUsuario;
import com.procibernetica.moca.vistas.Mensajes;
import java.util.Date;
import static com.procibernetica.moca.control.Utilidades.debeencuesta;
/**
* Created by dortiz on 15/02/17.
* Un ejemplo de manejar las acciones de moca
*/
public class MocaNotificaciones implements MOCAProximityService.ActionListener {
private Mensajes mensajes;
private CargarNotificaciones cargarNotificaciones;
private DetallesDeUsuario detallesDeUsuario;
/**
* Se debe desingar esta clase a moca , de lo contrario no existira funcion
* @param mensajes interaccion con el usuario
* @param cargarNotificaciones notificaciones en el sistema
*/
public MocaNotificaciones(Mensajes mensajes, CargarNotificaciones cargarNotificaciones) {
MOCAProximityService proxService = MOCA.getProximityService();
if (proxService != null) {
Log.println(Log.ASSERT,"MOCA","Listener NOTIFICACIONES");
detallesDeUsuario=new DetallesDeUsuario(mensajes.getContext());
proxService.setActionListener(this);
this.cargarNotificaciones=cargarNotificaciones;
this.mensajes=mensajes;
}
}
/**
*
* @param mocaAction accion que realiza
* @param s contenido
* @return falso si moca tambien maneja esta funcion
*/
@Override
public boolean displayNotificationAlert(MOCAAction mocaAction, String s) {
Log.println(Log.ASSERT,"MOCA",s);
if((AccessToken.getCurrentAccessToken() == null) && ((s.equalsIgnoreCase(mensajes.getContext().getString(R.string.medio_llegada))) || (s.equalsIgnoreCase(mensajes.getContext().getString(R.string.medio_ida)))) ){
debeencuesta=true;
Log.println(Log.ASSERT,"Debe encuesta",s);
}
if(AccessToken.getCurrentAccessToken() != null){
Date date=new Date();
Log.println(Log.ASSERT,"MOCA","Entro n");
if(s.equalsIgnoreCase(mensajes.getContext().getString(R.string.medio_llegada)) && detallesDeUsuario.getEntrada(date) ){
Log.println(Log.ASSERT,"MOCA","Lanza LLEGADA");
lanzarEncuesta(s);
return true;
}
if(s.equalsIgnoreCase(mensajes.getContext().getString(R.string.medio_ida)) && detallesDeUsuario.getSalida(date))
{ Log.println(Log.ASSERT,"MOCA","Lanza IDA 1");
if(Utilidades.compararHora(new Date())){
Log.println(Log.ASSERT,"MOCA","Lanza IDA 2");
lanzarEncuesta(mensajes.getContext().getString(R.string.medio_ida));
return true;
}
}
}
return false;
}
/**
*
* @param mocaAction accion que realiza
* @param s contenido
* @return falso si moca tambien maneja esta funcion
*/
@Override
public boolean openUrl(MOCAAction mocaAction, String s) {
Log.println(Log.ASSERT,"ACTION","URL");
return false;
}
/**
*
* @param mocaAction accion que realiza
* @param s contenido
* @return falso si moca tambien maneja esta funcion
*/
@Override
public boolean showHtmlWithString(MOCAAction mocaAction, String s) {
Log.println(Log.ASSERT,"ACTION","html");
return false;
}
/**
*
* @param mocaAction accion que realiza
* @param s contenido
* @return falso si moca tambien maneja esta funcion
*/
@Override
public boolean playVideoFromUrl(MOCAAction mocaAction, String s) {
Log.println(Log.ASSERT,"ACTION","URL");
return false;
}
/**
*
* @param mocaAction accion que realiza
* @param s contenido
* @return falso si moca tambien maneja esta funcion
*/
@Override
public boolean displayImageFromUrl(MOCAAction mocaAction, String s) {
return false;
}
/**
*
* @param mocaAction accion que realiza
* @param s contenido
* @return falso si moca tambien maneja esta funcion
*/
@Override
public boolean displayPassFromUrl(MOCAAction mocaAction, String s) {
return false;
}
/**
*
* @param mocaAction accion que realiza
* @param s contenido
* @return falso si moca tambien maneja esta funcion
*/
@Override
public boolean addTag(MOCAAction mocaAction, String s, String s1) {
return false;
}
/**
*
* @param mocaAction accion que realiza
* @param s contenido
* @return falso si moca tambien maneja esta funcion
*/
@Override
public boolean playNotificationSound(MOCAAction mocaAction, String s) {
return false;
}
/**
*
* @param mocaAction accion que realiza
* @param s contenido
* @return falso si moca tambien maneja esta funcion
*/
@Override
public boolean performCustomAction(MOCAAction mocaAction, String s) {
Log.println(Log.ASSERT, "MOCA", s);
return false;
}
public void lanzarEncuesta(String s)
{
Log.println(Log.ASSERT,"MOCA","Lanza n");
cargarNotificaciones.cargaEncuestadeTransporte(s);
cargarNotificaciones.lanzarNotificacionEncuesta();
}
}
Agradesco su atencion.
Posted in
General
by
Daniel Ortiz