Cómo utilizar la programación de Android para implementar el posicionamiento GPS
Hola, estaré encantado de responder a tu pregunta.
1. Preparación
Se requieren los siguientes tres softwares:
1. Eclipse
2. p>3. Desarrollar complementos de Eclipse para programas de Android
Para comenzar nuestro trabajo, primero debemos instalar Eclipse, luego obtener el SDK de Android del sitio web de Google e instalar el complemento de Eclipse.
2. Clase de actividad
Cada entorno de desarrollo móvil tiene su propia clase base. Por ejemplo, la clase base de las aplicaciones J2ME son los midlets, la clase base de BREW son los subprogramas y la clase base de los programas de Android es Actividad. Esta actividad nos proporciona acceso a las funciones y eventos básicos del sistema operativo móvil. Esta clase contiene métodos de construcción básicos, manejo del teclado, funciones de suspensión y reanudación y otros accesos a dispositivos portátiles de bajo nivel. Básicamente, nuestra aplicación será una extensión de la clase Actividad. En este artículo, los lectores aprenderán a través de ejemplos cómo utilizar la clase Actividad para escribir programas de Android. A continuación se muestra un ejemplo sencillo de cómo heredar Actividad. public?class?LocateMe?extends?Activity{?
public?void?onCreate(Bundle?params){
super.onCreate(params);
setContentView(R.layout.main); }?
public?boolean?onKeyDown(int?keyCode, ?KeyEvent?event){?
return?true; p>
Tres clases de Vista
La clase Ver es una superclase de Android. Esta clase incluye casi todos los tipos de pantalla. Pero existen algunas diferencias entre ellos. Cada vista tiene un lienzo para pintar. Este lienzo se puede ampliar arbitrariamente. Por conveniencia, este artículo solo cubre dos tipos de Vista principales: Vista de definición y Vista de contenido XML de Android. En el código anterior, se utiliza la vista XML "Hello World", que comienza de una manera muy natural.
Si miramos el nuevo proyecto de Android, encontraremos un archivo llamado main.xml. En este archivo, el diseño de una pantalla se describe a través de un simple archivo XML.
El contenido de este sencillo archivo xml es el siguiente:lt;?xml?version="1.0"?encoding="utf-8"?gt;?
lt;RelativeLayout?xmlns:android="/ apk/res/android"?
androidrientation="vertical"?
android:layout_width="fill_parent"?
android:layout_height="fill_parent"? p>
gt;?
lt;TextView?
android:layout_width="fill_parent"?
android:layout_height="wrap_content" ?
android:layout_centerHoriz?
android:text="presione?la?tecla?de?centro?para?localizarse"?
/gt;? p>
lt;/RelativeLayoutgt;
La función del contenido anterior parece muy obvia. Este archivo especial define un diseño relativo, es decir, descrito por la relación de un elemento con otro elemento o con sus elementos principales. Para las vistas, existen algunos métodos de diseño, pero en este artículo solo nos centraremos en el archivo xml anterior.
RealtiveLayout contiene un cuadro de texto que ocupa toda la pantalla (es decir, nuestra actividad LocateMe). Esta actividad LocateMe es de pantalla completa de forma predeterminada, por lo tanto, el cuadro de texto heredará esta propiedad y se mostrará en la esquina superior izquierda de la pantalla. Además, se debe establecer un número de referencia para este archivo XML para que Android pueda encontrarlo en el código fuente. De forma predeterminada, estos números de referencia se guardan en R.java, el código es el siguiente: public?final?class?R{?
public?static?final?class?layout{?
public?static?final?int?main=0x7f030001;?
} }
Las vistas también se pueden anidar, pero a diferencia de J2ME, podemos personalizar las vistas con las que se utilizan. widgets lanzados por el equipo de Android. En J2ME, los desarrolladores se ven obligados a elegir entre GameCanvas y el lienzo de la aplicación J2ME. Esto significa que si queremos un efecto personalizado, tenemos que rediseñar todos nuestros widgets en GameCanvas. Android es más que eso, los tipos de vistas también se pueden mezclar. Android también viene con una biblioteca de widgets, que incluye barras de desplazamiento, entidades de texto, barras de progreso y muchos otros controles. Estos widgets estándar se pueden sobrecargar o personalizar según nuestros hábitos. Ahora entremos en nuestro ejemplo. ?
4. Ejemplo de Android
Esta aplicación de demostración demostrará la longitud y latitud actuales del usuario (que se muestran en el cuadro de texto). El constructor onCreate será básicamente el mismo que el ejemplo anterior, excepto que se agrega el manejo del teclado. Ahora echemos un vistazo al código onKeyDown.
public?boolean?onKeyDown(int?keyCode, ?KeyEvent?event){?
if(keyCode?!=?KeyEvent.KEYCODE_DPAD_CENTER?||?m_bLoading)?
{?
return?true;?
}?
m_bLoading?=?true;?
getLocation();?
return?true;?
}
Expliquemos este código Primero, este código verifica la tecla presionada actualmente, pero tampoco se inició ningún procesamiento. En su lugar, maneje todo esto en el método getLocation. Luego, se cargará la bandera y se llamará al método getLocation. El siguiente es el código para el método getLocation. privado?void?getLocation(){?
Ubicación?loc;?
LocationManager?locMan;?
LocationProvider?locPro;?
Listlt;LocationProvidergt;?proList;?
setContentView(R.layout.laoding);?
locMan?=?(LocationManager)?getSystemService(LOCATION_SERVICE);? p> p>
proList?=?locMan.getProviders();?
locPro?=?proList.get(0);?
loc?=?locMan. getCurrentLocation( locPro.getName());?
Lat?=?(float)loc.getLatitude();?
Lon?=?(float)loc.getLongitude() ;?
CreateView();?
setContentView(customView);?
}
En este punto, el programa comienza a volverse más interesante. Pero, lamentablemente, la documentación de Google sobre este aspecto es todavía relativamente pequeña. Después de las declaraciones de variables del programa, necesitamos demostrar cierta información de carga. R.layout.loading se ajusta a otra vista de diseño XML simple. La pantalla se puede volver a dibujar con la información reproducida simplemente llamando al método setContentView.
Los lectores deben tener en cuenta que durante la compilación, Android preempaquetará todos los datos de diseño XML. Si queremos cambiar las propiedades de diseño después de la compilación, de acuerdo con las regulaciones, debemos hacer estas cosas en el programa fuente.
La única forma de obtener el LocationManager es mediante la llamada al método getSystemService(). Al utilizar LocationManager, podemos obtener una lista de proveedores de ubicación. En un dispositivo portátil real, esta lista contiene algunos servicios de GPS. De hecho, queremos elegir un GPS que sea más potente, más preciso y que finalmente no venga con otros servicios adicionales. Ya está disponible en el simulador un GPS para pruebas, este es de San Francisco. Se pueden cargar y probar archivos GPS personalizados. Si tuviéramos que probar una aplicación más compleja, el GPS de San Francisco podría no ser el adecuado.
Actualmente podemos utilizar administradores de ubicación y proveedores de ubicación para llamar a getCurrentLocation. Este método devuelve una instantánea de la ubicación actual de la máquina local, que se proporcionará como un objeto Ubicación. En dispositivos portátiles podemos obtener la longitud y latitud de nuestra ubicación actual. Ahora, usando este dispositivo portátil virtual, podemos obtener el resultado final de este programa de ejemplo: Se crea una vista personalizada para mostrar.
5. Utilice vistas personalizadas
En la forma más simple, una vista en Android solo necesita sobrecargar un método onDraw. Las vistas personalizadas pueden ser implementaciones 3D complejas o formas de texto muy simples. El método CreateView a continuación enumera lo que vio arriba. public?void?CreateView(){?
customView?=?new?CustomView(this);?
}
Este método simplemente llama al constructor de objetos CustomView . La clase CustomView se define de la siguiente manera: public?class?CustomView?extends?View{
LocateMe?overlord;?
public?CustomView(LocateMe?pCtx){
super(pCtx);
overlord?=?pCtx;?
}? public?void?onDraw(Canvas?cvs){?Paint?p?=?nuevo ?Paint ();? Cadena?sLat?=?"Latitud:?"? ?overlord.getLat();? Cadena?sLon?=?"Longitud:?"? sLat?,?32,?32,?p);? cvs.drawText(sLon,?32,?44,?p);?
}?
} p>
Esta vista personalizada de Android toma datos de prueba de longitud y latitud y los muestra en la pantalla. Esto requiere un puntero a LocateMe, la clase Actividad que es el núcleo de toda la aplicación. Sus dos métodos son el método constructor y el método onDraw. Este constructor llama al constructor de la superclase y provoca una interrupción en el puntero de actividad. El método onDraw creará un nuevo objeto Paint (este objeto encapsula el color, la transparencia y otra información del tema), que accederá al tema de color. En este programa, se instalan cadenas para su visualización y el puntero del lienzo se utiliza para dibujarlas en la pantalla. Esto se parece mucho al lienzo del juego J2ME que conocemos.
6. Outlook de Android
Desde un punto de vista de desarrollo puro, Android es un SDK muy potente. Se combina mediante diseños basados en XML y vistas personalizadas. Y puede utilizar barras de desplazamiento, mapas y otros componentes. Por lo tanto, el desarrollador puede sobrecargar o personalizar todo esto. Pero la documentación que proporciona es muy aproximada. No hay tecnologías como SMS en el documento, pero si miramos el SDK de Android en su conjunto, sigue siendo muy prometedor. También es muy consistente con el SDK "First Look" prometido por Google. Ahora todo lo que tenemos que hacer es esperar a que Google lance el primer teléfono basado en Android y usarlo.
Si está satisfecho, haga clic en el botón derecho para aceptar la respuesta. Si aún tiene preguntas, haga clic para preguntar.
Espero que mi respuesta le sea útil y. ¡Espero que lo aceptes! ~?O(∩_∩)O~