C++Builder 10.2 Tokyo. JNI. BroadcastReceiver Android.

En esta oportunidad veremos como capturar en C++Builder el evento onReceive, de un BroadcastReceiver hecho en Java Android, en nuestro caso cada vez que se detecte un cambio en la conectividad del dispositivo, por ejemplo, nos conectamos o desconectamos de una red WIFI, tenemos datos a través de la red celular; esto además nos sirve de base para determinar cuando estamos sin internet.

Para lograr el objetivo debemos seguir los siguientes pasos:

Debemos crear una librería de Android usando el ADT (Android Developer Tool), la cual tendrá la implementación del BroadcastReceiver. Esta clase Java de Android debe tener la firma de un método native, el cual debe ser estático y público de manera de poder ser implementado/registrado en C++Builder. Esta librería será compilada en un archivo de extensión .aar, lo descomprimimos y usando el archivo classes.jar.

BroacastReceiver_Java_Android

Creamos un Proyecto en C++Builder y agregamos la librería de Android en la sección de Android en Librerías.

ProjectManager

Escribimos el código necesario para registrar el Método Nativo a través de JNI.

Registro_Metodo_Nativo_JNI

Como notarán en la imagen anterior se hace referencia en la estructura  JNINativeMethod a un rutina llamada nativeOnReceive, esta debe tener una firma especifica, como veremos en la siguiente imagen:

Firma_MetodoNativo_Cpp

Como último paso debemos modificar el archivo de Manifiesto de Android de nuestro proyecto y agregar el BroadcastReceiver..

Manifest_CBuilder

Ya lo que nos queda es agregar los diferentes permisos necesarios según sea el caso, en este caso debe agregar los siguiente permisos.

Screen Shot 2017-04-02 at 4.52.12 PM

Aquellos que están acostumbrados a mis videos, no se preocupen, tendremos video paso por paso.

Saludos ;-)

Esta entrada fue publicada en Android, C++Builder, Sin categoría. Guarda el enlace permanente.

Deja un comentario