Saltar al contenido
Codif铆ca.me | Desarrollo web | Programaci贸n

Parking reminder Android App

2 diciembre, 2014

En esta entrada vamos a ver el c贸digo de una aplicaci贸n Android que hemos realizado para recordar d贸nde hemos dejado el coche, yo lo utilizo cuando viajo a una ciudad nueva, aparco y no se muy bien luego guiarme por la ciudad. Despu茅s de unas vueltas por la ciudad y con mi escasa orientaci贸n no se d贸nde he dejado el coche, pues para eso hemos realizado esta aplicaci贸n.

El funcionamiento es b谩sico, una vez que te hayas descargado la aplicaci贸n de Google Play, la aplicaci贸n se conectar谩 y desconectar谩 por bluetooth a tu coche dejando una miga de pan (o una marca) en el mapa de Google Maps que indicar谩 d贸nde est谩 estacionado tu coche.

Si tienes Bluetooth lo har谩 autom谩ticamente, en el caso de que no tengas Bluetooth tendr谩s que hacer click en la aplicaci贸n para que deje la se帽al del lugar en el que has aparcado.

Si quieres bajarte la aplicaci贸n Parking reminder para recordar d贸nde has dejado el coche, puedes hacerlo desde el link y bajar谩 directamente de Google Play.

parking reminder

Vamos con la parte interesante del c贸digo, para recibir notificaciones de cuando se conecta y desconecta tu aplicaci贸n via Bluetooth usamos la siguiente clase:

//If you want your app noticing a bluetooth event (i.e. disconnecting/conecting...) 
//you should use a Receiver which will be called when this event is triggered
 
 
 
public class MyBTReceiver extends BroadcastReceiver {
 
    @Override
    public void onReceive(Context context, Intent intent) {
        if(intent.getAction().equals(BluetoothDevice.ACTION_ACL_DISCONNECTED)){
	    BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
	    String deviceName = device.getName();
 
	    Toast.makeText(context, "Bluetooth disconnected from device: " + deviceName, Toast.LENGTH_LONG).show();
 
 	    //If you want to start a service/activity from here:
            Intent serviceIntent = new Intent(context, MyService.class);
	    context.startService(serviceIntent);
        }
    }
}

Necesitar谩s los siguientes permisos para que tu dispositivo Android se puede conectar, que tendr谩s que declararlos en el fichero manifest, quedar铆a as铆:

//Two permissions are needed:
    <uses-permission android:name="android.permission.BLUETOOTH"/>
    <uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>

Tambi茅n tendr谩s que declarar el receivers en el fichero manifest, ser铆a algo as铆:

// and you need to declare the receiver int he manifest:
 
        <receiver android:name=".receivers.MyBTReceiver">
            <intent-filter>
                <action android:name="android.bluetooth.device.action.ACL_DISCONNECTED"/>
            </intent-filter>
        </receiver>

Este es un error frecuente, que puedes solventar usando BluetoothDevice en vez de device, se solventar铆a as铆:
:

//If you Toast is not showing, one common mistake is using 
 
<action android:name="android.bluetooth.BluetoothDevice.ACTION_ACL_DISCONNECTED" />
 
//instead of:
 
<action android:name="android.bluetooth.device.action.ACL_DISCONNECTED"/>
 
//(Notice the "BluetoothDevice" instead of "device")

Si te ha gustado o te ha sido util me gustar铆a que me ayudases con la web haciendo un +1 en Google + . Gracias!

Rate this post