Coğrafi sınır çizme, kullanıcının mevcut konumunun farkında olmayı, kullanıcının ilgisini çekebilecek konumlara yakınlığının farkında olmayla birleştirir. İlgilenilen konumu işaretlemek için enlem ve boylamını belirtirsiniz. Konumun yakınlığını ayarlamak için bir yarıçap eklersiniz. Enlem, boylam ve yarıçap, coğrafi sınırı tanımlayarak ilgilenilen konumun çevresinde dairesel bir alan veya sınır oluşturur.
Birden fazla etkin coğrafi sınırınız olabilir. Uygulama ve cihaz kullanıcısı başına 100 sınır vardır. Her bir coğrafi sınır için Konum Hizmetleri'nden size giriş ve çıkış etkinlikleri göndermesini isteyebilir veya bir etkinliği tetiklemeden önce coğrafi sınır alanında beklenecek ya da kalınacak süreyi belirtebilirsiniz. Milisaniye cinsinden bir geçerlilik süresi belirterek herhangi bir coğrafi sınırın süresini sınırlayabilirsiniz. Coğrafi sınırın süresi dolduktan sonra Konum Hizmetleri bu sınırı otomatik olarak kaldırır.
Bu derste, coğrafi sınır ekleme ve kaldırma işlemlerinin yanı sıra BroadcastReceiver kullanarak coğrafi sınır geçişlerini nasıl dinleyeceğiniz gösterilmektedir.
Not: Wear cihazlarda, coğrafi sınır çizme API'leri gücü verimli bir şekilde kullanmaz. Bu API'leri Wear'da kullanmanızı önermiyoruz. Daha fazla bilgi için Güç ve pil tasarrufu başlıklı makaleyi okuyun.
Coğrafi sınır izleme için ayarlama
Coğrafi sınır izleme isteğinde bulunmanın ilk adımı, gerekli izinleri istemektir. Coğrafi sınır çizme özelliğini kullanmak için uygulamanızın aşağıdakileri istemesi gerekir:
-
ACCESS_FINE_LOCATION -
ACCESS_BACKGROUND_LOCATIONUygulamanız Android 10 (API düzeyi 29) veya sonraki sürümleri hedefliyorsa
Daha fazla bilgi için konum izni isteme ile ilgili kılavuzu inceleyin.
Coğrafi sınır geçişlerini dinlemek için BroadcastReceiver kullanmak istiyorsanız hizmet adını belirten bir öğe ekleyin. Bu öğe,
<application> öğesinin alt öğesi olmalıdır:
<application android:allowBackup="true"> ... <receiver android:name=".GeofenceBroadcastReceiver"/> <application/>
Konum API'lerine erişmek için coğrafi sınır çizme istemcisinin bir örneğini oluşturmanız gerekir. İstemcinizi nasıl bağlayacağınızı öğrenmek için:
Kotlin
lateinit var geofencingClient: GeofencingClient override fun onCreate(savedInstanceState: Bundle?) { // ... geofencingClient = LocationServices.getGeofencingClient(this) }
Java
private GeofencingClient geofencingClient; @Override public void onCreate(Bundle savedInstanceState) { // ... geofencingClient = LocationServices.getGeofencingClient(this); }
Coğrafi sınır oluşturma ve ekleme
Uygulamanızın, Geofence nesneleri oluşturmak için location API'nin oluşturucu sınıfını ve bunları eklemek için kolaylık sınıfını kullanarak coğrafi sınırlar oluşturması ve eklemesi gerekir. Ayrıca, coğrafi sınır geçişleri gerçekleştiğinde Konum Hizmetleri'nden gönderilen intent'leri işlemek için bu bölümde gösterildiği gibi bir PendingIntent tanımlayabilirsiniz.
Not: Tek kullanıcılı cihazlarda uygulama başına 100 coğrafi sınır sınırı vardır. Çok kullanıcılı cihazlarda ise sınır, cihaz kullanıcısı başına uygulama başına 100 coğrafi sınırdır.
Coğrafi sınır nesneleri oluşturma
Öncelikle
Geofence.Builder kullanarak bir coğrafi sınır oluşturun ve coğrafi sınır için istediğiniz yarıçapı, süreyi ve geçiş türlerini ayarlayın. Örneğin, bir liste nesnesini doldurmak için:
Kotlin
geofenceList.add(Geofence.Builder() // Set the request ID of the geofence. This is a string to identify this // geofence. .setRequestId(entry.key) // Set the circular region of this geofence. .setCircularRegion( entry.value.latitude, entry.value.longitude, Constants.GEOFENCE_RADIUS_IN_METERS ) // Set the expiration duration of the geofence. This geofence gets automatically // removed after this period of time. .setExpirationDuration(Constants.GEOFENCE_EXPIRATION_IN_MILLISECONDS) // Set the transition types of interest. Alerts are only generated for these // transition. We track entry and exit transitions in this sample. .setTransitionTypes(Geofence.GEOFENCE_TRANSITION_ENTER or Geofence.GEOFENCE_TRANSITION_EXIT) // Create the geofence. .build())
Java
geofenceList.add(new Geofence.Builder() // Set the request ID of the geofence. This is a string to identify this // geofence. .setRequestId(entry.getKey()) .setCircularRegion( entry.getValue().latitude, entry.getValue().longitude, Constants.GEOFENCE_RADIUS_IN_METERS ) .setExpirationDuration(Constants.GEOFENCE_EXPIRATION_IN_MILLISECONDS) .setTransitionTypes(Geofence.GEOFENCE_TRANSITION_ENTER | Geofence.GEOFENCE_TRANSITION_EXIT) .build());
Bu örnekte, bir sabitler dosyasından veri alınmaktadır. Uygulamalar, gerçekte kullanıcının konumuna göre dinamik olarak coğrafi sınırlar oluşturabilir.
Coğrafi sınırları ve ilk tetikleyicileri belirtme
Aşağıdaki snippet, izlenecek coğrafi sınırları belirtmek ve ilgili coğrafi sınır etkinliklerinin nasıl tetikleneceğini ayarlamak için
GeofencingRequest sınıfını ve iç içe yerleştirilmiş
GeofencingRequestBuilder sınıfını kullanır:
Kotlin
private fun getGeofencingRequest(): GeofencingRequest { return GeofencingRequest.Builder().apply { setInitialTrigger(GeofencingRequest.INITIAL_TRIGGER_ENTER) addGeofences(geofenceList) }.build() }
Java
private GeofencingRequest getGeofencingRequest() { GeofencingRequest.Builder builder = new GeofencingRequest.Builder(); builder.setInitialTrigger(GeofencingRequest.INITIAL_TRIGGER_ENTER); builder.addGeofences(geofenceList); return builder.build(); }
Bu örnekte iki coğrafi sınır tetikleyicisinin kullanımı gösterilmektedir.
GEOFENCE_TRANSITION_ENTER geçişi, cihaz bir coğrafi sınıra girdiğinde tetiklenir.
GEOFENCE_TRANSITION_EXIT geçişi ise cihaz bir coğrafi sınırdan çıktığında tetiklenir.
INITIAL_TRIGGER_ENTER değerini belirtmek, cihaz zaten coğrafi sınırın içindeyse
GEOFENCE_TRANSITION_ENTER değerinin tetiklenmesi gerektiğini konum hizmetlerine bildirir.
Çoğu durumda, bunun yerine
INITIAL_TRIGGER_DWELL kullanmak daha iyi olabilir.
Bu, yalnızca kullanıcı bir coğrafi sınır içinde belirli bir süre boyunca durduğunda etkinlikleri tetikler.
Bu yaklaşım, bir cihaz kısa süreliğine coğrafi sınırlara girip çıktığında çok sayıda bildirimden kaynaklanan "uyarı spam'ini" azaltmaya yardımcı olabilir. Coğrafi sınırlarınızdan en iyi sonuçları almak için kullanabileceğiniz bir diğer strateji de minimum yarıçapı 100 metre olarak ayarlamaktır. Bu, tipik kablosuz ağların konum doğruluğunu hesaba katmaya yardımcı olur ve cihazın güç tüketimini azaltır.
Coğrafi sınır geçişleri için yayın alıcı tanımlama
Konum Hizmetleri'nden gönderilen bir Intent, uygulamanızda çeşitli işlemleri tetikleyebilir ancak bileşenler yalnızca bir kullanıcı işlemine yanıt olarak görünür hale gelmesi gerektiğinden, bir etkinliği veya parçayı başlatmasına izin vermemeniz gerekir. Çoğu durumda, coğrafi sınır geçişini yönetmek için BroadcastReceiver kullanmak iyi bir yöntemdir. BroadcastReceiver,
bir etkinlik gerçekleştiğinde (ör. coğrafi sınıra girme veya coğrafi sınırdan çıkma)
güncellemeleri alır ve uzun süreli arka plan çalışmalarını
başlatabilir.
Aşağıdaki snippet'te, BroadcastReceiver başlatan bir PendingIntent öğesinin nasıl tanımlanacağı gösterilmektedir:
Kotlin
class MainActivity : AppCompatActivity() { // ... private val geofencePendingIntent: PendingIntent by lazy { // We use FLAG_UPDATE_CURRENT so that we get the same pending intent back when calling // addGeofences() and removeGeofences(). val flags = PendingIntent.FLAG_UPDATE_CURRENT if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.S) { // Starting on Android S+ the pending intent has to be mutable. flags or PendingIntent.FLAG_MUTABLE } val intent = Intent(this, GeofenceBroadcastReceiver::class.java) PendingIntent.getBroadcast(this, 0, intent, flags) } }
Java
public class MainActivity extends AppCompatActivity { // ... private PendingIntent getGeofencePendingIntent() { // Reuse the PendingIntent if we already have it. if (geofencePendingIntent != null) { return geofencePendingIntent; } // We use FLAG_UPDATE_CURRENT so that we get the same pending intent back when calling // addGeofences() and removeGeofences(). int flags = PendingIntent.FLAG_UPDATE_CURRENT; if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.S) { // Starting on Android S+ the pending intent has to be mutable. flags |= PendingIntent.FLAG_MUTABLE; } Intent intent = new Intent(this, GeofenceBroadcastReceiver.class); geofencePendingIntent = PendingIntent.getBroadcast(this, 0, intent, flags); return geofencePendingIntent; } }
Coğrafi sınır ekleme
Coğrafi sınır eklemek için
yöntemini kullanın.
GeofencingClient.addGeofences()
GeofencingRequest nesnesini ve PendingIntent değerini girin.
Aşağıdaki snippet, sonuçların işlenmesini göstermektedir:
Kotlin
geofencingClient?.addGeofences(getGeofencingRequest(), geofencePendingIntent)?.run { addOnSuccessListener { // Geofences added // ... } addOnFailureListener { // Failed to add geofences // ... } }
Java
geofencingClient.addGeofences(getGeofencingRequest(), getGeofencePendingIntent()) .addOnSuccessListener(this, new OnSuccessListener<Void>() { @Override public void onSuccess(Void aVoid) { // Geofences added // ... } }) .addOnFailureListener(this, new OnFailureListener() { @Override public void onFailure(@NonNull Exception e) { // Failed to add geofences // ... } });
Coğrafi sınır geçişlerini yönetme
Konum Hizmetleri, kullanıcının bir coğrafi sınıra girdiğini veya çıktığını algıladığında, coğrafi sınır ekleme isteğine eklediğiniz PendingIntent içinde bulunan Intent öğesini gönderir. GeofenceBroadcastReceiver gibi bir yayın alıcısı, Intent öğesinin çağrıldığını fark eder ve ardından intent'ten coğrafi sınır çizme etkinliğini alabilir, coğrafi sınır geçişlerinin türünü belirleyebilir ve tanımlanan coğrafi sınırlardan hangisinin tetiklendiğini belirleyebilir. Yayın alıcısı, bir uygulamayı arka plan çalışması yapmaya yönlendirebilir veya istenirse çıkış olarak bildirim gönderebilir.
Not: Android 8.0 (API düzeyi 26) ve sonraki sürümlerde, bir uygulama coğrafi sınırı izlerken arka planda çalışıyorsa cihaz, coğrafi sınır çizme etkinliklerine birkaç dakikada bir yanıt verir. Uygulamanızı bu yanıt sınırlarına nasıl uyarlayacağınızı öğrenmek için Arka Planda Konum Sınırları başlıklı makaleyi inceleyin.
Aşağıdaki snippet'te, coğrafi sınır geçişi gerçekleştiğinde bildirim yayınlayan bir BroadcastReceiver öğesinin nasıl tanımlanacağı gösterilmektedir. Kullanıcı bildirimi tıkladığında uygulamanın ana etkinliği görünür:
Kotlin
class GeofenceBroadcastReceiver : BroadcastReceiver() { // ... override fun onReceive(context: Context?, intent: Intent?) { val geofencingEvent = GeofencingEvent.fromIntent(intent) if (geofencingEvent.hasError()) { val errorMessage = GeofenceStatusCodes .getStatusCodeString(geofencingEvent.errorCode) Log.e(TAG, errorMessage) return } // Get the transition type. val geofenceTransition = geofencingEvent.geofenceTransition // Test that the reported transition was of interest. if (geofenceTransition == Geofence.GEOFENCE_TRANSITION_ENTER || geofenceTransition == Geofence.GEOFENCE_TRANSITION_EXIT) { // Get the geofences that were triggered. A single event can trigger // multiple geofences. val triggeringGeofences = geofencingEvent.triggeringGeofences // Get the transition details as a String. val geofenceTransitionDetails = getGeofenceTransitionDetails( this, geofenceTransition, triggeringGeofences ) // Send notification and log the transition details. sendNotification(geofenceTransitionDetails) Log.i(TAG, geofenceTransitionDetails) } else { // Log the error. Log.e(TAG, getString(R.string.geofence_transition_invalid_type, geofenceTransition)) } } }
Java
public class GeofenceBroadcastReceiver extends BroadcastReceiver { // ... protected void onReceive(Context context, Intent intent) { GeofencingEvent geofencingEvent = GeofencingEvent.fromIntent(intent); if (geofencingEvent.hasError()) { String errorMessage = GeofenceStatusCodes .getStatusCodeString(geofencingEvent.getErrorCode()); Log.e(TAG, errorMessage); return; } // Get the transition type. int geofenceTransition = geofencingEvent.getGeofenceTransition(); // Test that the reported transition was of interest. if (geofenceTransition == Geofence.GEOFENCE_TRANSITION_ENTER || geofenceTransition == Geofence.GEOFENCE_TRANSITION_EXIT) { // Get the geofences that were triggered. A single event can trigger // multiple geofences. List<Geofence> triggeringGeofences = geofencingEvent.getTriggeringGeofences(); // Get the transition details as a String. String geofenceTransitionDetails = getGeofenceTransitionDetails( this, geofenceTransition, triggeringGeofences ); // Send notification and log the transition details. sendNotification(geofenceTransitionDetails); Log.i(TAG, geofenceTransitionDetails); } else { // Log the error. Log.e(TAG, getString(R.string.geofence_transition_invalid_type, geofenceTransition)); } } }
PendingIntent üzerinden geçiş etkinliğini algıladıktan sonra BroadcastReceiver, coğrafi sınır geçiş türünü alır ve uygulamanın bildirimleri tetiklemek için kullandığı etkinliklerden biri olup olmadığını test eder. Bu örnekte bu etkinlikler GEOFENCE_TRANSITION_ENTER veya GEOFENCE_TRANSITION_EXIT'dir. Ardından hizmet bir bildirim gönderir ve geçiş ayrıntılarını günlüğe kaydeder.
Coğrafi sınır izlemeyi durdurma
Artık ihtiyaç duyulmadığında veya istenmediğinde coğrafi sınır izlemeyi durdurmak, cihazda pil gücünden ve CPU döngülerinden tasarruf etmeye yardımcı olabilir. Coğrafi sınır izlemeyi, coğrafi sınır eklemek ve kaldırmak için kullanılan ana etkinlikte durdurabilirsiniz. Bir coğrafi sınır kaldırıldığında izleme hemen durdurulur. API, istek kimliklerine göre veya belirli bir PendingIntent ile ilişkili coğrafi sınırları kaldırarak coğrafi sınırları kaldırma yöntemleri sağlar.
Aşağıdaki snippet, PendingIntent kullanarak coğrafi sınırları kaldırır ve cihaz daha önce eklenen coğrafi sınırlara girdiğinde veya bu sınırlardan çıktığında daha fazla bildirim gönderilmesini durdurur:
Kotlin
geofencingClient?.removeGeofences(geofencePendingIntent)?.run { addOnSuccessListener { // Geofences removed // ... } addOnFailureListener { // Failed to remove geofences // ... } }
Java
geofencingClient.removeGeofences(getGeofencePendingIntent()) .addOnSuccessListener(this, new OnSuccessListener<Void>() { @Override public void onSuccess(Void aVoid) { // Geofences removed // ... } }) .addOnFailureListener(this, new OnFailureListener() { @Override public void onFailure(@NonNull Exception e) { // Failed to remove geofences // ... } });
Coğrafi sınır çizmeyi, periyodik konum güncellemeleri gibi konuma duyarlı diğer özelliklerle birleştirebilirsiniz. Daha fazla bilgi için bu sınıftaki diğer derslere göz atın.
Coğrafi sınır çizme ile ilgili en iyi uygulamalardan yararlanma
Bu bölümde, Android için Location API'lerle coğrafi sınır çizme özelliğini kullanmaya yönelik öneriler açıklanmaktadır.
Güç tüketimini azaltma
Coğrafi sınır çizme kullanan uygulamalarınızda güç tüketimini optimize etmek için aşağıdaki teknikleri kullanabilirsiniz:
Bildirim yanıt verme süresini daha yüksek bir değere ayarlayın. Bu işlem, coğrafi sınır uyarılarının gecikmesini artırarak güç tüketimini iyileştirir. Örneğin, yanıt verme süresi değerini beş dakika olarak ayarlarsanız uygulamanız yalnızca beş dakikada bir giriş veya çıkış uyarısı olup olmadığını kontrol eder. Daha düşük değerler ayarlamak, kullanıcıların bu süre içinde bilgilendirileceği anlamına gelmez (örneğin, 5 saniyelik bir değer ayarlarsanız uyarıyı almak biraz daha uzun sürebilir).
Kullanıcının önemli miktarda zaman geçirdiği konumlar (ör. ev veya iş yeri) için daha büyük bir coğrafi sınır yarıçapı kullanın. Daha büyük bir yarıçap, güç tüketimini doğrudan azaltmasa da uygulamanın giriş veya çıkış kontrolü yapma sıklığını azaltarak genel güç tüketimini etkili bir şekilde düşürür.
Coğrafi sınırınız için en uygun yarıçapı seçme
En iyi sonuçlar için coğrafi sınırın minimum yarıçapı 100-150 metre arasında ayarlanmalıdır. Kablosuz bağlantı olduğunda konum doğruluğu genellikle 20-50 metre arasındadır. Bina içi konum kullanılabildiğinde doğruluk aralığı 5 metreye kadar düşebilir. Coğrafi sınır içinde kapalı mekan konumunun kullanılabildiğini bilmiyorsanız kablosuz konum doğruluğunun yaklaşık 50 metre olduğunu varsayın.
Kablosuz ağ konumu kullanılamadığında (örneğin, kırsal alanlarda araç kullanırken) konum doğruluğu azalır. Doğruluk aralığı birkaç yüz metre ile birkaç kilometre arasında değişebilir. Bu gibi durumlarda, daha büyük bir yarıçap kullanarak coğrafi sınırlar oluşturmanız gerekir.
Uygulamanızın neden coğrafi sınır çizme özelliğini kullandığını kullanıcılara açıklayın.
Uygulamanız, coğrafi sınır çizme özelliğini kullandığınızda arka planda konuma eriştiğinden, uygulamanızın kullanıcılara nasıl fayda sağladığını düşünün. Kullanıcıların daha iyi anlaması ve şeffaflık için uygulamanızın bu erişime neden ihtiyaç duyduğunu onlara açıkça anlatın.
Coğrafi sınır çizme de dahil olmak üzere konum erişimiyle ilgili en iyi uygulamalar hakkında daha fazla bilgi için gizlilikle ilgili en iyi uygulamalar sayfasını inceleyin.
Uyarı spam'ini azaltmak için bekleme geçiş türünü kullanma
Bir coğrafi sınırın yanından kısa süreliğine geçerken çok sayıda uyarı alıyorsanız uyarıları azaltmanın en iyi yolu,
GEOFENCE_TRANSITION_ENTER yerine
GEOFENCE_TRANSITION_DWELL geçiş türünü kullanmaktır. Bu sayede, bekleme uyarısı yalnızca kullanıcı belirli bir süre boyunca coğrafi sınır içinde durduğunda gönderilir.
Oyalanma gecikmesi ayarlayarak süreyi seçebilirsiniz.
Coğrafi sınırları yalnızca gerektiğinde yeniden kaydetme
Kayıtlı coğrafi sınırlar, com.google.android.gms paketine ait com.google.process.location işleminde tutulur.
Sistem, aşağıdaki etkinliklerden sonra coğrafi sınırları geri yüklediği için uygulamanın bu etkinlikleri işlemek üzere herhangi bir işlem yapması gerekmez:
- Google Play Hizmetleri yükseltildi.
- Google Play Hizmetleri, kaynak kısıtlaması nedeniyle sistem tarafından sonlandırılıp yeniden başlatılır.
- Konum işlemi kilitleniyor.
Sistem, aşağıdaki durumlarda coğrafi sınırları kurtaramayacağından, aşağıdaki olaylardan sonra hâlâ ihtiyaç duyuluyorsa uygulamanın coğrafi sınırları yeniden kaydetmesi gerekir:
- Cihaz yeniden başlatılır. Uygulama, cihazın başlatma işleminin tamamlanmasını beklemeli ve ardından gerekli coğrafi sınırları yeniden kaydetmelidir.
- Uygulama kaldırılıp yeniden yüklendiğinde
- Uygulamanın verileri temizlenir.
- Google Play Hizmetleri verileri temizlenir.
- Uygulama
GEOFENCE_NOT_AVAILABLEuyarısı aldı. Bu durum genellikle NLP (Android'in Ağ Konum Sağlayıcısı) devre dışı bırakıldıktan sonra gerçekleşir.
Coğrafi sınıra giriş etkinliğiyle ilgili sorunları giderme
Cihaz bir coğrafi sınıra girdiğinde coğrafi sınırlar tetiklenmiyorsa (
GEOFENCE_TRANSITION_ENTER uyarısı tetiklenmiyorsa) öncelikle coğrafi sınırlarınızın bu kılavuzda açıklandığı şekilde doğru şekilde kaydedildiğinden emin olun.
Uyarıların beklendiği gibi çalışmamasının olası nedenlerinden bazıları şunlardır:
- Coğrafi sınırınızın içinde doğru konum bilgisi alınamıyor veya coğrafi sınırınız çok küçük. Çoğu cihazda coğrafi sınır hizmeti, coğrafi sınır tetikleme için yalnızca ağ konumunu kullanır. Ağ konumu çok daha az güç tükettiği, ayrı konumları almak daha az zaman aldığı ve en önemlisi iç mekanlarda kullanılabildiği için hizmet bu yaklaşımı kullanır.
Cihazda kablosuz bağlantı kapalıdır. Kablosuz bağlantının açık olması, konum doğruluğunu önemli ölçüde artırabilir. Bu nedenle, kablosuz bağlantı kapalıysa uygulamanız, coğrafi sınırın yarıçapı, cihaz modeli veya Android sürümü gibi çeşitli ayarlara bağlı olarak hiçbir zaman coğrafi sınır uyarıları almayabilir. Android 4.3'ten (API düzeyi 18) itibaren, kullanıcıların kablosuz bağlantıyı devre dışı bırakmasına rağmen iyi bir ağ konumu elde etmesine olanak tanıyan "yalnızca kablosuz ağ tarama modu" özelliğini ekledik. Her ikisi de devre dışıysa kullanıcıdan Wi-Fi'ı veya yalnızca Wi-Fi tarama modunu etkinleştirmesini istemek ve bunun için bir kısayol sağlamak iyi bir uygulamadır. Cihazın sistem ayarlarının optimum konum algılama için doğru şekilde yapılandırıldığından emin olmak için SettingsClient'ı kullanın.
Not: Uygulamanız Android 10 (API düzeyi 29) veya sonraki sürümleri hedefliyorsa uygulamanız bir sistem uygulaması ya da cihaz politikası denetleyicisi (DPC) olmadığı sürece
WifiManager.setEnabled()yöntemini doğrudan çağıramazsınız. Bunun yerine ayarlar panelini kullanın.- Coğrafi sınırınız içinde güvenilir bir ağ bağlantısı yoksa. Güvenilir bir veri bağlantısı yoksa uyarılar oluşturulmayabilir. Bunun nedeni, coğrafi sınır hizmetinin ağ konumu sağlayıcısına bağlı olması ve bu sağlayıcının da veri bağlantısı gerektirmesidir.
- Uyarılar gecikebilir. Coğrafi sınır hizmeti sürekli olarak konum sorgulaması yapmaz. Bu nedenle, uyarı alırken biraz gecikme yaşanabilir. Gecikme süresi genellikle 2 dakikadan kısadır. Cihaz hareket halindeyken bu süre daha da kısalır. Arka planda konum sınırları etkinse gecikme süresi ortalama 2-3 dakikadır. Cihaz uzun bir süre boyunca sabit kaldıysa gecikme süresi artabilir (6 dakikaya kadar).
Ek kaynaklar
Coğrafi sınır çizme hakkında daha fazla bilgi edinmek için aşağıdaki materyalleri inceleyin:
Örnekler
Coğrafi sınır oluşturmak ve izlemek için örnek uygulama.