Domanda

Sto creando un'applicazione che tiene traccia della posizione degli utenti utilizzando il GPS, memorizza la longitudine e la latitudine in un database utilizzando un provider di contenuti poi uscita la prima lunga e lat ad un mapview.

Sono in grado di creare il cursore con questa riga di codice:

Cursor c = getContentResolver().query(GPSContentProvider.CONTENT_URI,
                                                      null, null, null, null);
startManagingCursor(c);

Tuttavia, quando faccio una chiamata per passare alla prima riga nel database o anche provare a chiudere il cursore usando c.close(); ho ricevuto un NullPointerException.

Modifica:. Giusto per chiarire, io in grado di memorizzare la longitudine, latitudine e il tempo in millisecondi di all'interno del database, il problema sta poi prendendo i dati dal database e displyaing questo su una mappa

codice aggiornato:

public static final String AUTHORITY = "application.android.prototype";
// followed by the CONTENT_URI
public static final Uri CONTENT_URI = Uri.
                    parse("content://" + AUTHORITY + "/gpspoints");

autorizzazioni aggiornate:

<provider android:name="GPSDataContentProvider" android:authorities="application.android.prototype">
</provider>
È stato utile?

Soluzione

Ho deciso di non utilizzare il ContentProvider alla fine come il database di mia applicazione è solo destinato ad essere utilizzato da quella singola applicazione.

Invece, ho creato un database tipico utilizzando SQL e usato una simile funzione di cursore:

SQLiteDatabase db = waypoints.getReadableDatabase ();             Cursore cursore = db.query (TABLE_NAME, DA, null, null, null, null, ORDER_BY);             startManagingCursor (cursore);             cursore di ritorno;

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top