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.
Creamos un Proyecto en C++Builder y agregamos la librería de Android en la sección de Android en Librerías.
Escribimos el código necesario para registrar el Método Nativo a través de 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:
Como último paso debemos modificar el archivo de Manifiesto de Android de nuestro proyecto y agregar el BroadcastReceiver..
Ya lo que nos queda es agregar los diferentes permisos necesarios según sea el caso, en este caso debe agregar los siguiente permisos.
Aquellos que están acostumbrados a mis videos, no se preocupen, tendremos video paso por paso.
Saludos 😉