2011-02-18 43 views
8

, kullanıcıların bu uygulamayı alandaki belirli olayları kaydetmek için kullandığı, konum etkinleştirilmiş bir uygulama oluşturuyoruz.Doğru tarih/saatin ayarlanması

Olay verilerinin önemli bir kısmı bir olayın gerçekleştiği zamandır. Bu, kullanıcı çevrimiçi olduğunda sorun değil, aynı zamanda kullanıcının çevrimdışı olduğu durumları da destekliyoruz (& daha sonra senkronizasyon olaylarını hatırlayarak).

Kullanıcıların çevrimdışı olduğu durumlar olabilir ve bunlar telefondaki saati değiştirir, böylece olay zamanları yanlış kaydedilir.

Demek ki doğru bir zaman olsun sağlamanın en iyi yolu ne olacağını, o cihazı verilen kullanıcı işlemlerinin bağımsız çevrimdışı olabilir. Bazı fikirler:

  1. GPS saati. Onu elde etmek mümkün mü?
  2. İzleme sistemi kullanıcı tarafından yapılan değişiklikler zamana bağlı?
  3. Başka bir fikrin var mı?

Not: Zaman saniye hassasiyet ihtiyacı var, yaklaşık dakika doğruluk Tamam olur.

Not2: Biz Android ve iPhone için mobil uygulamaları oluştururken, bu yüzden de genel çözümleri ve bu iki platformların herhangi özgü çözümler için ilgileniyorum.

+0

GSM şebekelerinin şu anki zamanı sağlayabileceğini düşünüyorum. Mobil cihaz ağdaysa, bu zamanla senkronize edilir. –

+0

Cihaz çevrimiçi olduğunda bu bir sorun değil - etkinlikler gönderildiğinde sunucumuzda zamanı kontrol edebiliriz. Sorun yalnızca cihaz çevrimdışı olduğunda ortaya çıkar. –

+0

Peter - Bu SO yorum kötüye kullandığınız için üzgünüz, ama size ulaşmanın başka bir yolunu bulamıyorum. SO kullanıcı verilerinin analizi ile ilgili blog girişinize yorum yapamam. Gönderi ve önizleme hem sayfayı yeniden yükler. Blogspot için çerezler açık, bir google.com hesabım var. Çerezlerin bazı ek üçüncü alanlar için de gerekli olduğunu düşünüyorum, ancak bilmenin bir yolu yok. Yorum burada; http://slashdot.org/comments.pl?sid=2328930&cid=36789036 –

cevap

2

Şahsen bu senaryo hakkında çok fazla endişe duymam. Çevrimdışıyken zamanının kasten değiştiği (gün boyunca periyodik olarak bir zaman sunucusuna senkronize edilen) birisinin benim için değişme ihtimali düşük görünüyor. Bununla birlikte, bunun telafi edilmesini görebilmemin tek yolu, yer verilerinin çevrimdışı olarak kaydedilmesinden bu yana geçen sürenin akıcı bir taksimini tutan arka planda çalışan bir hizmeti sürdürmektir. Sunucularınıza yüklendikten sonra, geçerli UTC saatinden bir zaman ofseti hesaplamak için geçen saniye kullanabilirsiniz. Geçmesi çok korkunç bir şey ama işe yarayacaktı.

GPS zamanı ilginç bir fikir ancak Android, SDK kullanıcılarının cihazlarına sahte konumlar göndermesine izin veriyor. Sistem zamanındaki değişiklikleri güvenilir bir şekilde izleyebildiğinizden emin değilim ve hatta gerçek zamandan sonra bağlam olarak onları yakalayabiliyor olsanız bile.

+0

Eh, bu uygulamayı kullanan şirketler, çalışanlarını bu alanda kullanırken kullanmak zorundadır - işe başlama, işi durdurma, vb. Bazı teşvikler var. Çalışanlardan düzeltmek için. Özellikle bir boşluk bulunursa. –

+0

Sahte GPS konumları oluşturmayla ilgili iyi nokta. Bu tespit edilip edilemeyeceğini kontrol eder. –

+0

Evet, böyle bir durumda sahteciliğin son derece hassas olabileceğini görebiliyorum. O zaman senaryomda arka plan hizmetlerini öldürmenin hala mümkün olduğunu düşünün. Verileri, cihaz belleğine kaydırmanın ve hizmeti otomatik olarak yeniden başlatmanın periyodik olarak ısrar ederek etkisini en aza indirgeyseniz emin değilim. Düşünecek çok şey var gibi geliyor! –

1

Uygulamamızdaki GPS zamanlarını çok benzer nedenlerden dolayı kullanıyoruz. Kullanıcılarımız farklı saat dilimlerinde olduklarından ve yerel saatleri istediğimizden, kurulum saatinde hangi saat diliminde olduklarını sunucumuzdan tanımlarız (çok uzaklara gitmezler). Sahte GPS konumlarını düşünmemiştim, ancak bunu yapmak için oldukça gelişmiş bir kullanıcı olmanız gerekirdi.

İlgili konular