Antes que nada, en la entrada Primera Aplicación. Parte 4 se me ha olvidado indicar que para que la aplicación tenga acceso al sensor GPS del dispositivo, debe incluirse en el manifest de la aplicación la siguiente línea
Esta clase instancia e inicializa el manejador de sonidos, el manejador de base de datos y el localizador GPS indicando que realice llamadas de refresco al dispositivo GPS cada segundo. En caso de que la tabla de radares de la base de datos este vacía, lee el fichero de radares y los inserta en base de datos.
Esta clase es instanciada desde el método onCreate de la actividad principal, com.m607.MainActivity, mediante una llamada al método startService de la clase Activity
<
Resumen de artículos para la aplicación GPS:
Primera aplicación. Parte 1
Primera aplicación. Parte 2
Primera Aplicación. Parte 3
Primera Aplicación. Parte 4
Primera Aplicación. Parte 5
La aplicación completa se puede descargar aquí:
Primera Aplicacion. Avisador Radar para Vehículos
... <uses-sdk android:minsdkversion="10"> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"> <uses-permission android:name="android.permission.INTERNET"> ... </uses-sdk>Para finalizar la serie de entradas para la primera aplicación falta indicar como se lanzará la aplicación. He decidido lanzarla en background como servicio. Para ello, he creado la clase
com.m607.MainService
que extiende la clase android.app.Service
package com.m607; import com.m607.database.DBManager; import com.m607.sound.SoundManager; import android.app.Service; import android.content.Context; import android.content.Intent; import android.location.LocationListener; import android.location.LocationManager; import android.os.IBinder; import android.util.Log; public class MainService extends Service { private DBManager db; private SoundManager sm; @Override public void onCreate() { Log.v("MainService", "Service created"); db = new DBManager(this); db.open(); sm = new SoundManager(); sm.initSounds(getBaseContext()); sm.addSound(1, R.raw.sound); sm.addSound(2, R.raw.beep4); sm.addSound(3, R.raw.beep9); LocationManager lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE); LocationListener ll = new GpsLocationListener(this,db, sm); lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1000, 50, ll); if(db.getRadarCount()==0){ db.deleteAllRadars(); db.readCSV("es-allcam.txt"); } } @Override public IBinder onBind(Intent arg0) { // TODO Auto-generated method stub return null; } @Override public int onStartCommand(Intent intent, int flags, int startId) { return Service.START_STICKY; } }
Esta clase instancia e inicializa el manejador de sonidos, el manejador de base de datos y el localizador GPS indicando que realice llamadas de refresco al dispositivo GPS cada segundo. En caso de que la tabla de radares de la base de datos este vacía, lee el fichero de radares y los inserta en base de datos.
Esta clase es instanciada desde el método onCreate de la actividad principal, com.m607.MainActivity, mediante una llamada al método startService de la clase Activity
<
package com.m607; import android.app.Application; import android.content.Intent; public class MainActivity extends Application { @Override public final void onCreate() { super.onCreate(); // se crea un servicio para localizar por GPS startService(new Intent(this, MainService.class)); } }Por último, se añaden la actividad principal y el servicio en el manifest de la aplicación
... <application android:icon="@drawable/ic_launcher" android:label="@string/app_name"> <service android:enabled="true" android:name=".MainService" /> <activity android:label="@string/app_name" android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN"> <category android:name="android.intent.category.LAUNCHER"> </category></action></intent-filter> </activity> </application> ...
Resumen de artículos para la aplicación GPS:
Primera aplicación. Parte 1
Primera aplicación. Parte 2
Primera Aplicación. Parte 3
Primera Aplicación. Parte 4
Primera Aplicación. Parte 5
La aplicación completa se puede descargar aquí:
Primera Aplicacion. Avisador Radar para Vehículos
No hay comentarios:
Publicar un comentario