سؤال

أقوم بإنشاء تطبيق يتتبع موقع المستخدمين باستخدام GPS ، ويخزن خط الطول والعرض في قاعدة بيانات باستخدام مزود محتوى ثم إخراج أول طويل و LAT إلى MAPVIEW.

أنا قادر على إنشاء المؤشر باستخدام سطر الكود هذا:

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

ومع ذلك ، عندما أقوم بإجراء مكالمة للانتقال إلى الصف الأول في قاعدة البيانات أو حتى محاولة إغلاق المؤشر باستخدام c.close(); أتلقى أ NullPointerException.

تحرير: فقط لتوضيح الأمر ، يمكنني تخزين خط الطول والعرض والوقت في Milli داخل قاعدة البيانات ، ثم تتمثل المشكلة في إخراج البيانات من قاعدة البيانات والتخلص من هذا على الخريطة.

الرمز المحدث:

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

أذونات محدثة:

<provider android:name="GPSDataContentProvider" android:authorities="application.android.prototype">
</provider>
هل كانت مفيدة؟

المحلول

قررت عدم استخدام ContentProvider في النهاية حيث سيتم استخدام قاعدة بيانات التطبيق الخاصة بي فقط بواسطة هذا التطبيق الفردي.

بدلاً من ذلك ، قمت بإنشاء قاعدة بيانات نموذجية باستخدام SQL واستخدمت وظيفة مؤشر مماثلة:

sqlitedatabase db = waypoints.getReadabledatabase () ؛ المؤشر المؤشر = db.query (table_name ، from ، null ، null ، null ، null ، order_by) ؛ starkmanagingcursor (المؤشر) ؛ إرجاع المؤشر.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top