1. Başlamadan önce
Android 10 ve 11, uygulamaların cihaz konumlarına erişimi konusunda kullanıcılara daha fazla kontrol imkanı sunar.
Android 11'de çalışan bir uygulama konum erişimi istediğinde kullanıcılar dört seçenekten birini belirleyebilir:
- Her zaman izin ver
- Yalnızca uygulama kullanılırken izin ver (Android 10'da)
- Yalnızca bir kez (Android 11'de)
- Reddet
Android 10

Android 11

Bu codelab'de konum güncellemelerini almayı ve Android'in herhangi bir sürümünde (özellikle Android 10 ve 11) konumu desteklemeyi öğreneceksiniz. Bu codelab'in sonunda, konum güncellemelerini alma konusunda mevcut en iyi uygulamalara uygun bir uygulamanız olacak.
Ön koşullar
- Android geliştirme hakkında bilgi
- Etkinlikler, hizmetler ve izinler hakkında bilgi sahibi olmanız gerekir.
Yapacaklarınız
- Android'de konum için en iyi uygulamaları takip edin.
- Ön plan konum izinlerini yönetin (kullanıcı, uygulamanız kullanımdayken cihaz konumuna erişmesini istediğinde).
- Konum erişimi isteğinde bulunma desteği eklemek için mevcut bir uygulamayı değiştirin. Bunun için konuma abone olma ve konum aboneliğinden çıkma kodu ekleyin.
- Ön planda konum veya kullanımdayken konuma erişmek için mantık ekleyerek uygulamaya Android 10 ve 11 desteği ekleyin.
Gerekenler
- Kodu çalıştırmak için Android Studio 3.4 veya sonraki bir sürümü
- Android 10 ve 11'in geliştirici önizlemesinin yüklü olduğu bir cihaz/emülatör
2. Başlarken
Başlangıç projesi deposunu klonlama
En kısa sürede başlamak için bu başlangıç projesini temel alabilirsiniz. Git yüklüyse aşağıdaki komutu çalıştırmanız yeterlidir:
git clone https://github.com/android/codelab-while-in-use-location
Dilerseniz doğrudan GitHub sayfasını ziyaret edebilirsiniz.
Git'iniz yoksa projeyi zip dosyası olarak alabilirsiniz:
Projeyi içe aktarma
Android Studio'yu açın, karşılama ekranından "Open an existing Android Studio project" (Mevcut bir Android Studio projesini aç) seçeneğini belirleyin ve proje dizinini açın.
Proje yüklendikten sonra, Git'in yerel değişikliklerinizin tümünü izlemediğine dair bir uyarı da görebilirsiniz. Yoksay'ı tıklayabilirsiniz. (Değişiklikleri Git deposuna geri göndermezsiniz.)
Proje penceresinin sol üst köşesinde, Android görünümündeyken aşağıdaki resme benzer bir görüntü görürsünüz. (Proje görünümündeyken aynı şeyi görmek için projeyi genişletmeniz gerekir.)

İki klasör vardır (base ve complete). Her biri "modül" olarak bilinir.
Android Studio'nun projeyi ilk kez arka planda derlemesinin birkaç saniye sürebileceğini unutmayın. Bu süre boyunca Android Studio'nun alt kısmındaki durum çubuğunda şu mesajı görürsünüz:

Kod değişiklikleri yapmadan önce Android Studio'nun projeyi dizine ekleme ve oluşturma işlemini tamamlamasını bekleyin. Bu işlem, Android Studio'nun gerekli tüm bileşenleri çekmesine olanak tanır.
Dil değişikliklerinin geçerli olması için yeniden yükle? veya benzeri bir istem alırsanız Evet'i seçin.
Başlangıç projesini anlama
Kurulumu tamamladınız ve uygulamada konum isteğinde bulunmaya hazırsınız. Başlangıç noktası olarak base modülünü kullanın. Her adımda base modülüne kod ekleyin. Bu codelab'i tamamladığınızda base modülündeki kod, complete modülünün içeriğiyle eşleşmelidir. complete modülü, çalışmanızı kontrol etmek veya sorun yaşarsanız başvurmak için kullanılabilir.
Temel bileşenler şunlardır:
MainActivity—Kullanıcının uygulamaya cihazın konumuna erişim izni vermesini sağlayan kullanıcı arayüzüLocationService—Konum değişikliklerine abone olan ve aboneliği iptal eden, kullanıcı uygulamanın etkinliğinden ayrılırsa kendisini ön plan hizmeti (bildirimle) olarak tanıtan hizmet. Buraya konum kodu ekleyin.Util—Locationsınıfı için uzantı işlevleri ekler ve konumuSharedPreferences'ye (basitleştirilmiş veri katmanı) kaydeder.
Emülatör kurulumu
Android emülatörü ayarlama hakkında bilgi edinmek için Emülatörde çalıştırma başlıklı makaleyi inceleyin.
Başlangıç projesini çalıştırma
Uygulamanızı çalıştırın.
- Android cihazınızı bilgisayarınıza bağlayın veya bir emülatör başlatın. (Cihazda Android 10 veya sonraki bir sürümün yüklü olduğundan emin olun.)
- Araç çubuğunda, açılır menüden
baseyapılandırmasını seçin ve Çalıştır'ı tıklayın:

- Cihazınızda aşağıdaki uygulamanın göründüğünü fark edebilirsiniz:

Çıkış ekranında konum bilgisinin görünmediğini fark edebilirsiniz. Bunun nedeni, henüz konum kodunu eklememiş olmanızdır.
3. Konum ekleme
Kavramlar
Bu codelab'in amacı, konum güncellemelerini nasıl alacağınızı göstermek ve Android 10 ile Android 11'i desteklemektir.
Ancak kodlamaya başlamadan önce temel bilgileri gözden geçirmeniz önerilir.
Konum erişimi türleri
Bu kod laboratuvarının başında konum erişimi için dört farklı seçenekten bahsetmiştik. Bu simgelerin anlamlarına göz atalım:
- Yalnızca uygulama kullanılırken izin ver
- Bu seçenek, çoğu uygulama için önerilen seçenektir. "Kullanımdayken" veya "yalnızca ön planda" erişim olarak da bilinen bu seçenek, Android 10'da eklenmiştir ve geliştiricilerin yalnızca uygulama aktif olarak kullanılırken konum almasına olanak tanır. Aşağıdaki durumlardan herhangi biri geçerliyse uygulama etkin olarak kabul edilir:
- Bir etkinlik görünür.
- Devam eden bir bildirimle ön plan hizmeti çalıştırılıyor.
- Yalnızca bir kez
- Android 11'de eklenen bu izin, Yalnızca uygulama kullanılırken izin ver ile aynıdır ancak sınırlı bir süre için geçerlidir. Daha fazla bilgi için Tek seferlik izinler başlıklı makaleyi inceleyin.
- Reddet
- Bu seçenek, konum bilgilerine erişimi engeller.
- Her zaman izin ver
- Bu seçenek, konuma her zaman erişilmesine izin verir ancak Android 10 ve sonraki sürümlerde ek izin gerektirir. Ayrıca geçerli bir kullanım alanınız olduğundan ve konum politikalarına uyduğunuzdan emin olmanız gerekir. Bu seçenek daha nadir bir kullanım alanı olduğundan bu codelab'de ele alınmayacaktır. Ancak geçerli bir kullanım alanınız varsa ve arka planda konuma erişim de dahil olmak üzere her zaman konum özelliğinin nasıl düzgün şekilde işleneceğini anlamak istiyorsanız LocationUpdatesBackgroundKotlin örneğini inceleyin.
Hizmetler, ön plan hizmetleri ve bağlama
Yalnızca uygulama kullanılırken izin ver konum güncellemelerini tam olarak desteklemek için kullanıcının uygulamanızdan ayrıldığı durumu hesaba katmanız gerekir. Bu durumda güncelleme almaya devam etmek istiyorsanız bir ön plan Service oluşturmanız ve bunu bir Notification ile ilişkilendirmeniz gerekir.
Ayrıca, uygulamanız görünürken ve kullanıcı uygulamanızdan ayrıldığında konum güncellemeleri istemek için aynı Service öğesini kullanmak istiyorsanız bu Service öğesini kullanıcı arayüzü öğesine bağlamanız/bağlantısını kaldırmanız gerekir.
Bu codelab yalnızca konum güncellemelerini alma konusuna odaklandığından ihtiyacınız olan tüm kodu ForegroundOnlyLocationService.kt sınıfında bulabilirsiniz. Bu sınıfı ve MainActivity.kt simgesini inceleyerek birlikte nasıl çalıştıklarını görebilirsiniz.
Daha fazla bilgi için Hizmetlere genel bakış ve Bağlı hizmetlere genel bakış başlıklı makaleleri inceleyin.
İzinler
NETWORK_PROVIDER veya GPS_PROVIDER cihazlardan konum güncellemeleri almak için Android manifest dosyanızda sırasıyla ACCESS_COARSE_LOCATION veya ACCESS_FINE_LOCATION iznini beyan ederek kullanıcının iznini istemeniz gerekir. Bu izinler olmadan uygulamanız, çalışma zamanında konuma erişim isteğinde bulunamaz.
Bu izinler, uygulamanız Android 10 veya sonraki sürümlerin yüklü olduğu bir cihazda kullanılırken Yalnızca bir kez ve Yalnızca uygulamayı kullanırken izin ver durumlarını kapsar.
Konum
Uygulamanız, com.google.android.gms.location paketindeki sınıflar aracılığıyla desteklenen konum hizmetleri grubuna erişebilir.
Ana sınıflara göz atın:
FusedLocationProviderClient- Bu, konum çerçevesinin merkezi bileşenidir. Oluşturulduktan sonra konum güncellemeleri istemek ve bilinen son konumu almak için kullanılır.
LocationRequest- Bu, istekler için hizmet kalitesi parametrelerini (güncellemeler, öncelikler ve doğruluk için aralıklar) içeren bir veri nesnesidir. Bu, konum güncellemeleri istediğinizde
FusedLocationProviderClient'ya iletilir. LocationCallback- Bu, cihazın konumu değiştiğinde veya artık belirlenemediğinde bildirim almak için kullanılır. Bu, veritabanınıza kaydetmek için
Locationdeğerini alabileceğiniz birLocationResultiletilir.
Ne yaptığınıza dair temel bir fikriniz olduğuna göre kodla çalışmaya başlayabilirsiniz.
4. Konum özellikleri ekleme
Bu codelab, en yaygın konum seçeneği olan Yalnızca uygulama kullanılırken izin ver'e odaklanmaktadır.
Konum güncellemeleri almak için uygulamanızın görünür bir etkinliği veya ön planda çalışan bir hizmeti (bildirimle birlikte) olmalıdır.
İzinler
Bu kod laboratuvarının amacı, konum izinleri istemeyi değil, konum güncellemelerini almayı göstermektir. Bu nedenle, izne dayalı kod sizin için önceden yazılmıştır. Bu kavramı biliyorsanız bu bölümü atlayabilirsiniz.
İzinlerle ilgili önemli noktalar şunlardır (bu bölüm için herhangi bir işlem yapmanız gerekmez):
AndroidManifest.xmliçinde hangi izni kullandığınızı beyan edin.- Konum bilgilerine erişmeye çalışmadan önce kullanıcının uygulamanıza bu izni verip vermediğini kontrol edin. Uygulamanız henüz izin almadıysa erişim isteğinde bulunun.
- Kullanıcının izin tercihini işleme (Bu kodu
MainActivity.ktbölümünde görebilirsiniz.)
AndroidManifest.xml veya MainActivity.kt içinde TODO: Step 1.0, Review Permissions ifadesini ararsanız izinler için yazılan tüm kodları görürsünüz.
Daha fazla bilgi için İzinlere genel bakış başlıklı makaleyi inceleyin.
Şimdi konum kodu yazmaya başlayın.
Konum güncellemeleri için gereken temel değişkenleri inceleyin
base modülünde, TODO: Step 1.1, Review variables ifadesini arayın.
ForegroundOnlyLocationService.kt dosyası.
Bu adımda herhangi bir işlem yapmanız gerekmez. Konum güncellemelerini almak için kullandığınız temel sınıfları ve değişkenleri anlamak üzere yorumlarla birlikte aşağıdaki kod bloğunu incelemeniz yeterlidir.
// TODO: Step 1.1, Review variables (no changes).
// FusedLocationProviderClient - Main class for receiving location updates.
private lateinit var fusedLocationProviderClient: FusedLocationProviderClient
// LocationRequest - Requirements for the location updates, i.e., how often you
// should receive updates, the priority, etc.
private lateinit var locationRequest: LocationRequest
// LocationCallback - Called when FusedLocationProviderClient has a new Location.
private lateinit var locationCallback: LocationCallback
// Used only for local storage of the last known location. Usually, this would be saved to your
// database, but because this is a simplified sample without a full database, we only need the
// last location to create a Notification if the user navigates away from the app.
private var currentLocation: Location? = null
FusedLocationProviderClient başlatma işlemini inceleyin
base modülünde, ForegroundOnlyLocationService.kt dosyasında TODO: Step 1.2, Review the FusedLocationProviderClient öğesini arayın. Kodunuz aşağıdaki gibi görünmelidir:
// TODO: Step 1.2, Review the FusedLocationProviderClient.
fusedLocationProviderClient = LocationServices.getFusedLocationProviderClient(this)
Önceki yorumlarda belirtildiği gibi, konum güncellemelerini almak için bu sınıfı kullanabilirsiniz. Değişken sizin için zaten başlatılmıştır ancak nasıl başlatıldığını anlamak için kodu incelemeniz önemlidir. Daha sonra konum güncellemeleri istemek için buraya bazı kodlar eklersiniz.
LocationRequest'i başlatma
basemodülünde,ForegroundOnlyLocationService.ktdosyasındaTODO: Step 1.3, Create a LocationRequestöğesini arayın.- Yorumun ardından aşağıdaki kodu ekleyin.
LocationRequest başlatma kodu, isteğiniz için gereken ek hizmet kalitesi parametrelerini (aralıklar, maksimum bekleme süresi ve öncelik) ekler.
// TODO: Step 1.3, Create a LocationRequest.
locationRequest = LocationRequest.create().apply {
// Sets the desired interval for active location updates. This interval is inexact. You
// may not receive updates at all if no location sources are available, or you may
// receive them less frequently than requested. You may also receive updates more
// frequently than requested if other applications are requesting location at a more
// frequent interval.
//
// IMPORTANT NOTE: Apps running on Android 8.0 and higher devices (regardless of
// targetSdkVersion) may receive updates less frequently than this interval when the app
// is no longer in the foreground.
interval = TimeUnit.SECONDS.toMillis(60)
// Sets the fastest rate for active location updates. This interval is exact, and your
// application will never receive updates more frequently than this value.
fastestInterval = TimeUnit.SECONDS.toMillis(30)
// Sets the maximum time when batched location updates are delivered. Updates may be
// delivered sooner than this interval.
maxWaitTime = TimeUnit.MINUTES.toMillis(2)
priority = LocationRequest.PRIORITY_HIGH_ACCURACY
}
- Her birinin nasıl çalıştığını anlamak için yorumları okuyun.
LocationCallback'i başlatma
basemodülünde,ForegroundOnlyLocationService.ktdosyasındaTODO: Step 1.4, Initialize the LocationCallbacköğesini arayın.- Yorumun ardından aşağıdaki kodu ekleyin.
// TODO: Step 1.4, Initialize the LocationCallback.
locationCallback = object : LocationCallback() {
override fun onLocationResult(locationResult: LocationResult) {
super.onLocationResult(locationResult)
// Normally, you want to save a new location to a database. We are simplifying
// things a bit and just saving it as a local variable, as we only need it again
// if a Notification is created (when the user navigates away from app).
currentLocation = locationResult.lastLocation
// Notify our Activity that a new location was added. Again, if this was a
// production app, the Activity would be listening for changes to a database
// with new locations, but we are simplifying things a bit to focus on just
// learning the location side of things.
val intent = Intent(ACTION_FOREGROUND_ONLY_LOCATION_BROADCAST)
intent.putExtra(EXTRA_LOCATION, currentLocation)
LocalBroadcastManager.getInstance(applicationContext).sendBroadcast(intent)
// Updates notification content if this service is running as a foreground
// service.
if (serviceRunningInForeground) {
notificationManager.notify(
NOTIFICATION_ID,
generateNotification(currentLocation))
}
}
}
Burada oluşturduğunuz LocationCallback, yeni bir konum güncellemesi olduğunda FusedLocationProviderClient tarafından çağrılan geri çağırmadır.
Geri çağırmanızda, önce LocationResult nesnesi kullanarak en son konumu alırsınız. Ardından, etkinse yerel yayın kullanarak Activity hizmetinize yeni konumu bildirirsiniz veya bu hizmet ön plan Service olarak çalışıyorsa Notification hizmetini güncellersiniz.
- Her bölümün ne yaptığını anlamak için yorumları okuyun.
Konum değişikliklerine abone olma
Her şeyi başlattığınıza göre, FusedLocationProviderClient'ya güncelleme almak istediğinizi bildirmeniz gerekir.
basemodülünde,ForegroundOnlyLocationService.ktdosyasındaStep 1.5, Subscribe to location changesöğesini arayın.- Yorumun ardından aşağıdaki kodu ekleyin.
// TODO: Step 1.5, Subscribe to location changes.
fusedLocationProviderClient.requestLocationUpdates(locationRequest, locationCallback, Looper.getMainLooper())
requestLocationUpdates() çağrısı, FusedLocationProviderClient konum güncellemeleri almak istediğinizi bildirir.
Daha önce tanımladığınız LocationRequest ve LocationCallback değerlerini muhtemelen tanıyorsunuzdur. Bu parametreler, FusedLocationProviderClient hizmetine isteğinizin hizmet kalitesi parametrelerini ve güncelleme olduğunda hangi işlevin çağrılması gerektiğini bildirir. Son olarak, Looper nesnesi geri arama için iş parçacığını belirtir.
Bu kodun bir try/catch ifadesi içinde olduğunu da fark edebilirsiniz. Uygulamanızın konum bilgilerine erişme izni olmadığında SecurityException oluştuğu için bu yöntemde böyle bir blok gerekir.
Konum değişiklikleri e-posta listesinden çıkma
Uygulamanın artık konum bilgisine erişmesi gerekmediğinde konum güncellemelerinin aboneliğinden çıkmanız önemlidir.
basemodülünde,ForegroundOnlyLocationService.ktdosyasındaTODO: Step 1.6, Unsubscribe to location changesöğesini arayın.- Yorumun ardından aşağıdaki kodu ekleyin.
// TODO: Step 1.6, Unsubscribe to location changes.
val removeTask = fusedLocationProviderClient.removeLocationUpdates(locationCallback)
removeTask.addOnCompleteListener { task ->
if (task.isSuccessful) {
Log.d(TAG, "Location Callback removed.")
stopSelf()
} else {
Log.d(TAG, "Failed to remove Location Callback.")
}
}
removeLocationUpdates() yöntemi, FusedLocationProviderClient cihazınıza konum güncellemeleri almak istemediğinizi FusedLocationProviderClient cihazına bildiren bir görev oluşturur.LocationCallback addOnCompleteListener(), tamamlanma için geri çağırma işlevini sağlar ve Task işlevini yürütür.
Önceki adımda olduğu gibi, bu kodun bir try/catch ifadesi içinde olduğunu fark etmiş olabilirsiniz. Uygulamanızın konum bilgilerine erişme izni olmadığında SecurityException oluştuğu için bu yöntemde böyle bir engelleme gerekir.
Abone olma/abonelikten çıkma kodunu içeren yöntemlerin ne zaman çağrıldığını merak edebilirsiniz. Kullanıcı düğmeye dokunduğunda ana sınıfta tetiklenirler. İzlemek isterseniz MainActivity.kt sınıfına göz atın.
Uygulamayı çalıştırma
Uygulamanızı Android Studio'dan çalıştırın ve konum düğmesini deneyin.
Çıkış ekranında konum bilgilerini görmeniz gerekir. Bu, Android 9 için tam işlevli bir uygulamadır.


5. Android 10 desteği
Bu bölümde Android 10 desteği ekleyeceksiniz.
Uygulamanız zaten konum değişikliklerine abone olduğundan yapmanız gereken pek fazla şey yoktur.
Aslında yapmanız gereken tek şey, ön plan hizmetinizin konum amacıyla kullanıldığını belirtmektir.
Hedef SDK 29
basemodülünde,build.gradledosyasındaTODO: Step 2.1, Target Android 10 and then Android 11.öğesini arayın.- Şu değişiklikleri yapın:
targetSdkVersiondeğerini29olarak ayarlayın.
Kodunuz aşağıdaki gibi görünmelidir:
android {
// TODO: Step 2.1, Target Android 10 and then Android 11.
compileSdkVersion 29
defaultConfig {
applicationId "com.example.android.whileinuselocation"
minSdkVersion 26
targetSdkVersion 29
versionCode 1
versionName "1.0"
}
...
}
Bu işlemi yaptıktan sonra projenizi senkronize etmeniz istenir. Şimdi Senkronize Et'i tıklayın.

Bu işlemlerden sonra uygulamanız Android 10 için neredeyse hazır olur.
Ön Plan Hizmeti Türü Ekleme
Android 10'da, kullanımdayken konum erişimine ihtiyacınız varsa ön plan hizmetinizin türünü eklemeniz gerekir. Sizin durumunuzda konum bilgisi almak için kullanılıyor.
base modülünde, AndroidManifest.xml içinde TODO: 2.2, Add foreground service type öğesini arayın ve aşağıdaki kodu <service> öğesine ekleyin:
android:foregroundServiceType="location"
Kodunuz aşağıdaki gibi görünmelidir:
<application>
...
<!-- Foreground services in Android 10+ require type. -->
<!-- TODO: 2.2, Add foreground service type. -->
<service
android:name="com.example.android.whileinuselocation.ForegroundOnlyLocationService"
android:enabled="true"
android:exported="false"
android:foregroundServiceType="location" />
</application>
İşte bu kadar. Uygulamanız, Android'deki konumla ilgili en iyi uygulamaları izleyerek "kullanım sırasında" için Android 10 konumunu destekliyor.
Uygulamayı çalıştırma
Uygulamanızı Android Studio'dan çalıştırın ve konum düğmesini deneyin.
Her şey eskisi gibi çalışmaya devam eder ancak artık Android 10'da çalışır. Daha önce konum izinlerini kabul etmediyseniz artık izin ekranını görmelisiniz.



6. Android 11 desteği
Bu bölümde Android 11'i hedefliyorsunuz.
İyi haber: build.gradle dosyası dışında herhangi bir dosyada değişiklik yapmanız gerekmez.
Hedef SDK 11
basemodülünde,build.gradledosyasındaTODO: Step 2.1, Target SDKifadesini arayın.- Şu değişiklikleri yapın:
compileSdkVersion-30targetSdkVersion-30
Kodunuz aşağıdaki gibi görünmelidir:
android {
TODO: Step 2.1, Target Android 10 and then Android 11.
compileSdkVersion 30
defaultConfig {
applicationId "com.example.android.whileinuselocation"
minSdkVersion 26
targetSdkVersion 30
versionCode 1
versionName "1.0"
}
...
}
Bu işlemi yaptıktan sonra projenizi senkronize etmeniz istenir. Şimdi Senkronize Et'i tıklayın.

Bu işlemden sonra uygulamanız Android 11'e hazır olur.
Uygulamayı çalıştırma
Uygulamanızı Android Studio'dan çalıştırın ve düğmeyi tıklamayı deneyin.
Her şey eskisi gibi çalışmaya devam eder ancak artık Android 11'de çalışır. Daha önce konum izinlerini kabul etmediyseniz artık izin ekranını görmelisiniz.


7. Android için konum stratejileri
Bu codelab'de gösterilen yöntemlerle konum izinlerini kontrol edip isteyerek uygulamanız, cihaz konumuna erişim düzeyiyle ilgili olarak başarılı bir şekilde takip yapabilir.
Bu sayfada, konum izinleriyle ilgili birkaç önemli en iyi uygulama listelenmektedir. Kullanıcılarınızın verilerini nasıl güvende tutacağınız hakkında daha fazla bilgi için Uygulama izinleriyle ilgili en iyi uygulamalar başlıklı makaleyi inceleyin.
Yalnızca ihtiyacınız olan izinleri isteyin
Yalnızca gerektiğinde izin isteyin. Örneğin:
- Kesinlikle gerekli olmadığı sürece uygulama başlatılırken konum izni istemeyin.
- Uygulamanız Android 10 veya sonraki sürümleri hedefliyorsa ve ön plan hizmetiniz varsa manifest dosyasında
foregroundServiceType"location"bildirin. - Kullanıcı Konumuna Daha Güvenli ve Şeffaf Erişim başlıklı makalede açıklanan geçerli bir kullanım alanınız olmadığı sürece arka planda konum izni istemeyin.
İzin verilmediğinde kontrollü azalmayı destekleme
İyi bir kullanıcı deneyimi sunmak için uygulamanızı aşağıdaki durumları sorunsuz bir şekilde ele alacak şekilde tasarlayın:
- Uygulamanızın konum bilgilerine erişimi yoksa
- Uygulamanız arka planda çalışırken konum bilgilerine erişemiyor.
8. Tebrikler
En iyi uygulamaları göz önünde bulundurarak Android'de konum güncellemelerini nasıl alacağınızı öğrendiniz.
Daha fazla bilgi
- Geçerli bir kullanım alanınız varsa arka planda konum kullanma örneğinin tamamı
- Konum güncellemeleri isteyin