Mejora de servicios y actualización de WCTime.mantenimiento-equipos-servidores-redes

En esta ocasión hemos actualizado algunos servicios que requerían mantenimiento para mejorar sus funciones y/ó corregir fallos. Hemos aprovechado también para actualizar una aplicación, WCTime, que llevaba tiempo sin mostrar contenido, nos disculpamos a los usuarios por ello.

 

Actualizada la aplicación WCTime

wctime_iconLlevaba un tiempo sin mostrar contenido. Se ha corregido el problema en el servidor y la aplicación y subido la nueva versión al store de Google Play. Ya vuelve a haber contenido. Sentimos haber tardado tanto en aplicar el fix. A los que no la conocen aún os animo a descargarla y probarla, es una aplicación para pasar el rato. La podéis descargar aquí.

 

Actualizado servicio TextSanitizer

text_sanitizer_logoSe ha mejorado para que no sea tan restrictivo y permita emojis y algunos caracteres extra. También se ha mejorado el propio filtro en sí. Como siempre, lo tenéis accesible aquí. Os recordamos que podéis acceder también vía API de manera totalmente gratuita, más información.

 

Actualizado servicio ShortnumbersInfo (información de SMS premium de números cortos)

shortnumbers_info_logo

Parece que no se estaba mostrando la información de algunos números cortos de 5 cifras. Ahora se muestra la información de aquellos que empiezan por 23xxx y 33xxx, usados para servicios de juegos y también los que empezaban por 380xx usados para fines solidarios. tenéis el servicio
disponible aquí. Os recordamos que también podéis usar el servicio vía API de manera totalmente gratuita, más información. Además, tenemos una aplicación image_iconpara Android, AppVigilant, que usa la misma tecnología y que instalándola, nos evitaremos posibles sorpresas en la factura al avisarnos cuando enviamos o recibimos un mensaje de este tipo. Alertándonos también de posibles suscripciones, pudiéndonos incluso darnos de baja desde la propia aplicación, disponible en Google Play.

 

Esperamos que os agraden los cambios y os damos las gracias por la paciencia.

 

Un saludo,

Nuevo servicio disponible en JavocSoft vía web o API, en este caso se trata de un text_sanitizer_logosaneador de textos, Text Sanitizer. Este servicio permite limpiar un texto de palabras malsonantes o no deseadas. Lo teneis disponible en http://javocsoft.es/textsanitizer.php ó en el sidebar del blog en la sección “Servicios”.

El servicio, la web, usa una API sencilla que hemos creado, Text Sanitizer API, y que esta accesible para su uso general también.

Para limpiar un texto a través de la API bastaría con realizar un GET a la dirección http://api.textsanitizer.javocsoft.es/api/v1/sanitize/<dictionary>/<text_to_sanitize_url_encoded> en donde “text_to_sanitize_url_encoded” deberá ser sustituído por el texto a limpiar “url encoded” y “dictionary” es el diccionario deseado para filtrar el texto.

El formato de respuesta es un JSON tal que:

{
   "responseCode": 0,
   "responseText": "success",
   "data": {
            "ts": 1441788178752,
            "text": "<text_to_sanitize>",
            "dictionary": "all",
            "textProcessed": "<sanitized_text>"
           }
}

En donde “ts” es un timestamp y “dictionary” es el diccionario usado para filtrar el texto.

Los diccionarios disponibles actualmente son cuatro:

  • Uno para textos a filtrar por la noche, menos restrictivo “es_noche”.
  • Otro para textos durante el día, más restrictivo “es_dia”.
  • uno para textos en inglés, para tacos, “en_badwords”.
  • Por último, uno global que contiene todos los diccionarios “all”.

Si se necesitara un diccionario propio más palabras, contactar con javocsoft@gmail.com.

Se puede consultar tambien la lista de diccionarios disponible, esto solo mediante API. Para ello, ejecutar un GET a la dirección http://api.textsanitizer.javocsoft.es/api/v1/sanitize/dictionaries.

El formato de respuesta es un JSON tal que:

{
  "responseCode": 0,
  "responseText": "success",
  "data": [
    {
      "name": "es_dia",
      "words": 369
    },
    {
      "name": "en_badwords",
      "words": 77
    },
    {
      "name": "es_noche",
      "words": 110
    },
    {
      "name": "all",
      "words": 556
    }
  ]
}

 

Como siempre, esperamos que os sea útil el servicio (http://javocsoft.es/textsanitizer.php) y que os animeis a usarlo.

 

Un saludo,

 

1 estrella2 estrellas3 estrellas4 estrellas (No Ratings Yet)
Loading...

Hi,

In this update I added some assistance classes related with inter-application messaging in Android to JavocSoft Android Toolbox.JavocSoft Android Toolbox Library

Sometimes an application needs to accept messages from other applications, in those cases, a Messenger service must be implemented. See Messenger for more information about messaging. So, to make easier having a messenger service in an application, i have added a base MessengerService.java class to the library. Click here to access to the Messenger Service Wiki.

Here can be seen full example of how to have a valid Messenger Service in your application:

First, create the message incoming handler:

public class MyMessengerIncomingHandler extends MessengerIncomingHandler {

    //Messenger WHAT possible values
    public static final int MSG_EVT_HI = 1000;

    public MyMessengerIncomingHandler(Context context) {
        super(context);
    }

    @Override
    protected void doWork(Message msg) {
        switch (msg.what) {
            case MSG_EVT_HI:
                Log.i(Constants.TAG, "Messenger received: Hi!!");
                break;
            default:
                super.handleMessage(msg);
        }
    }
}

Second, the Messenger Service:

 public class MyMessengerService extends MessengerService {

 @Override
 protected MessengerIncomingHandler getMessageIncomingHandler() {
    return new MyMessengerIncomingHandler(context);
 }

}

And finally, in our AndroidManifest.xml:

<!-- Application messenger -->
<service android:name="es.javocsoft.base.genapp.service.MyMessengerService" 
	 android:enabled="true" android:exported="true" >
   <intent-filter>             
	<action android:name="es.javocsoft.base.genapp.messenger.ACTION_BIND" />
   </intent-filter>
</service>

Because we could need also to connect and send messages to other applications messenger services, I also added a class Mezzenger.java. Click here to access to the Messenger Wiki.

 

Mezzenger messenger = new Mezzenger("Inner", getApplicationContext()); 
messenger.connect("application.package.service.ACTION"); 
messenger.sendMessage(MSG_EVT_HI, 0, 0, null);

 

Do not forget to check the blog to get more updates!

More info and HowTo at https://github.com/javocsoft/javocsoft-toolbox/wiki.

github_icon

As always, library is available on GitHub

javocsoft-toolbox.

Bye.

JavocSoft 2015.

Hi,

When using Google GCM, we have to be sure that the message is properly encoded, in case of non-latin characters, when reaching to the devices to avoid weird characters when is show.gcm-logo-e1357123459595

To achieve this, the first approach could be to do an URL-Encode the message and decode it when get from the notification but in case of iOS, if the application is not in foreground, the notification goes directly to the system and there we can not do a URL-Decode so, the correct way, when using GCM through HTTP, is to encode properly the JSON GCM request in UTF-8 before making the POST to GCM. As a brief, with Apache HTTP:

  • Add “http.protocol.content-charset” with the value “UTF-8” to the POST request.
  • Set the JSON data through an StringEntity with “UTF-8” character encoding set.

Here i put an example of GCM JSON for a HTTP POST:

{
	"collapse_key":"collapse_key_value",
	"delay_while_idle":false,
	"data":{
		"title":"Notification title",
		"message":"Hi iOS and Android",
		"url":"url_address",
		"sound":"default"	
		},
	"notification":{
		"title":"Notification title",
		"body":"Hi iOS and Android",
		"sound":"default",
		"url":"url_adress"
	},
	"registration_ids":["registration_id"]
}

and here the request, POST, with Apache HTTP client of the GCM JSON:

//Create the HttpClient and Configure
DefaultHttpClient httpclient = new DefaultHttpClient();
 
// The time it takes to open TCP connection.
httpclient.getParams().setParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, CONNECTION_DEFAULT_TIMEOUT);
// Timeout when server does not send data.
httpclient.getParams().setParameter(CoreConnectionPNames.SO_TIMEOUT, CONNECTION_DEFAULT_DATA_RECEIVAL_TIMEOUT);
// Some tuning that is not required for bit tests.
//httpclient.getParams().setParameter(CoreConnectionPNames.STALE_CONNECTION_CHECK, false);
httpclient.getParams().setParameter(CoreConnectionPNames.TCP_NODELAY, true);
 
//Set the header of the content to UTF-8
httpMethod.setHeader(CoreProtocolPNames.HTTP_CONTENT_CHARSET, "UTF-8");//Set the content through an StringEntity specifying the "UTF-8".
StringEntity se = new StringEntity(jsonData, "UTF-8");((HttpPost)httpMethod).setEntity(se); 
HttpResponse response = httpclient.execute(httpMethod);

 

 

Give it a try if you are with such character issues.

 

bye!

Hi all,

Today a new version of the library JavocSoft Android Toolbox have been released, in this case with a new module that integrates the Google Drive API. This allows to use Android ToolBox - Google DriveGoogle Drive within your applications in a really easy way. I wanted to add this to the library long time ago but until a few weeks i could not start doing it.JavocSoft Android Toolbox Library

To know how to use it and more  goto https://github.com/javocsoft/javocsoft-toolbox/wiki#google-drive.

As a brief, the list of operations that the new module for Google Drive allows are:

  • Create a file (with the posibility of creating it in the secure application folder).
  • Search for files.
  • Get a file given its name or title
  • Get the file contents.
  • Pin a file (this makes Google Drive to store a copy of its metadata locally in the Device).
  • Trash/Un-trash a file.
  • Be notified when a file changes (see TBDrive#addFileChangeListener() and TBChangeListener.java)
  • Subscribe to file changes (notifications are received even if the application is not running. See TBDrive#subscribeToFile() and TBDriveEventService.java).
  • Commit/Discard changes to a file (also be notified when Google Drive servers finish applying changes, see TBDriveEventService.java)
  • Get file contents as an String.
  • Append/Replace text to a file.
  • Get a DriveFile object from an encoded DriveId string.

As always, I hope these addition could be useful for your applications.

Do not forget to check the blog to get more updates!

More info and HowTo at https://github.com/javocsoft/javocsoft-toolbox/wiki.

github_icon

As always, library is available on GitHub

javocsoft-toolbox.

Bye.

JavocSoft 2015.

Hace tiempo que pusimos en el store una aplicación llamada “AppVigilant” para poder conocer el detalle de un número corto que pudiera aparecernos en la factura o que necesitásemos consultar su información. La aplicación también permitía darse de baja de un servicio de suscripción si se recibía un mensaje de este tipo. Toda la información fiable dado que se consultaba a la CMT junto con otros servicios como Axesor.

Dicha funcionalidad quedaba reducida a la aplicación “AppVigilant” tan solo. Por ello, decidimos portar esta información, al considerarla útil, de una manera más general y quizás, más accesible. En el sidebar de este blog podeis ahora ver una nueva sección (widget) llamado “Consulta de número corto / PREMIUM“. A partir de ahí ó a través de este enlace podréis consultar la información de un número corto para conocer si se trata de un número de tarificación especial PREMIUM y/ó si es un servicio de suscripción PREMIUM.

El servicio, la web, usa una API sencilla que hemos creado, Shortnumbers API, y que esta accesible para su uso general también.

Para consultar la información de un número corto a través de la API bastaría con realizar un GET a la dirección http://api.shortnumbers.javocsoft.es/api/v1/info/short_number en donde “short_number” deberá ser sustituído por el número corto.

El formato de respuesta es un JSON tal que:

{
  "responseCode": 0,
  "responseText": "Success",
  "data": {
    "shortNumber": "XXXXXX",
    "company": "COMAPNY NAME",
    "tarificationName": "PREMIUM",
    "pricing": "1,2 euros mas IVA",
    "isSubscriptionService": true/false,
    "location": "HTTP MAPS ADDRESS",
    "rznSoc": "COMPANY LEGAL NAME",
    "address": "ADDRESS",
    "city": "CITY",
    "province": "PROVINCE"
  }
}

Como siempre, esperamos que os sea útil el servicio y que os animeis a usar la aplicación si aún no la habeis instalado.

 

Un saludo,

 

1 estrella2 estrellas3 estrellas4 estrellas (No Ratings Yet)
Loading...