Android için Tüketici SDK'sı aşağıdakileri kullanarak Araç paylaşma uygulamaları oluşturmanızı sağlar: modüler bir yapıya sahip. API'nin istediğiniz bölümlerini kullanabilirsiniz API'lerle entegre edebilmelisiniz. Tüketici SDK'sı Farklı özelliklere yönelik API'ler ayrı modüllere yerleştirilmiştir.
Araç Paylaşma uygulamanız, Tüketici SDK'sının önceki sürümlerini kullanıyorsa bu modüler mimariyi kullanmak için uygulamanızı yeni sürüme geçirmeniz gerekir. Bu Taşıma rehberinde, uygulamanızı yeni sürüme nasıl geçireceğiniz açıklanmaktadır.
Genel Bakış
Tüketici SDK'sı modüler mimarisi, kullanıcı arayüzü durumunu barındıran bir Oturum nesnesi. Önceki sürümlerde Android'in gelişmiş bir sürümü olan Consumer SDK'nın Entegre bir Oturum nesnesi oluşturun. ve oturumu harita üzerinde görüntüleme seçeneğine sahip olursunuz. Oturum yoksa gösterilirse harita boş olur. Artık "boş" alan yok. veya "başlatıldı" durumu.
Oturum nesnesi, bir modülün tek bir yaşam döngüsü kullanım örneğini temsil eder. Oturumlar, modül API'lerine erişim noktalarıdır. Örneğin, Yolculuk paylaşımı oturumu, tek bir geziyi kapsar. Etkileşimde bulunuyorsunuz seyahati izlemek için Oturum nesnesini kullanın.
Bir Oturum nesnesi, bir modül türüyle ilişkilendirilir. Oturum nesnesinin davranışı, onu başlatmak için kullanılan nesnenin yaşam döngüsüyle bağlantılıdır.
TRIP_A'yı izlemek için bir TripModel
nesnesi oluşturduğunuzu varsayalım.
TRIP_A için tekrar TripModel
nesnesi almaya çalışırsanız
aynı TripModel
nesnesini alırsınız. TRIP_B durumunu takip etmek için yeni bir
TripModel
nesne algılandı.
Oturum durumları
Bir oturum, birkaç durumdan birinde olabilir:
Oluşturulan oturum, bir Oturum nesnesiyle temsil edilir. Siz oluşturun
create
yöntemini çağırarak bir oturum açın. Örneğin:JourneySharingSession sessionA = JourneySharingSession.createInstance(TripModelA)
Veriler ve değerlerle ilgili güncellemeler için bir started oturumu kaydedilir özelliklerini girin. Oturum açmak için
start
yöntemini çağırın. Örneğin:sessionA.start()
Gösterilen bir oturum otomatik olarak başlar. Kullanıcı arayüzü öğelerini gösterir ve veri güncellemelerine göre bunları günceller. Bir oturum gösterirsiniz
showSession
yöntemini çağırarak yapabilirsiniz. Örneğin:ConsumerController.showSession(sessionA)
Durdurulan bir oturum, verilerini yenilemeyi durduruyor ve kullanıcı arayüzü öğeleri.
stop
yöntemini çağırarak bir oturumu durdurursunuz. Örneğin:sessionA.stop()
Yalnızca veri ve kullanıcı arayüzü bileşenlerini kullanma
Yalnızca veri bileşenlerinden birini kullanarak araç paylaşma uygulaması oluşturabilirsiniz veya İsteğe Bağlı Yolculuklar ve Teslimat Çözümü tarafından sağlanan kullanıcı arayüzü öğesi API'leri.
Yalnızca veri bileşenleri kullanma
Yalnızca veri bileşenlerini kullanarak araç paylaşma uygulaması oluşturmak için:
- Bir
ConsumerApi
nesnesini başlatın. ConsumerApi
öğesindenTripModelManager
nesnesini alın.TripModel
nesnesi almak içinTripModelManager
ile seyahati izlemeye başlayın.TripModel
nesnesindeki geri çağırmaları kaydedin.
Aşağıdaki örnekte yalnızca veri içeren bileşenlerin nasıl kullanılacağı gösterilmektedir:
TripModelManager tripManager = ConsumerApi.getTripModelManager();
TripModel tripA = tripManager.getTripModel("trip_A");
tripA.registerTripCallback(new TripModelCallback() {})
Kullanıcı arayüzü öğesi API'lerini kullanma
Erişmek için ConsumerController
nesnesini kullanın
İsteğe Bağlı Yolculuklar ve Teslimat Çözümü kullanıcı arayüzü öğesi API'leri.
İsteğe Bağlı Yolculuklar ve Teslimat Çözümü kullanıcı arayüzüyle araç paylaşma uygulaması oluşturmak için öğe API'leri:
ConsumerApi
nesnesini başlatın.ConsumerApi
nesnesinden birTripModelManager
nesnesi alın.TripModelManager
ürününden, bir seyahati izleyenTripModel
nesnesi edinin.ConsumerMap[View/Fragment]
öğesini uygulama görünümüne ekleyin.ConsumerMap[View/Fragment]
öğesinden birConsumerController
nesnesi alın.JourneySharingSession
nesnesini almak içinTripModel
nesnesini Denetleyici'ye sağlayın.JourneySharingSession
cihazını göstermek için kumandayı kullanın.
Aşağıdaki örnekte, kullanıcı arayüzü API'lerinin nasıl kullanılacağı gösterilmektedir:
TripModelManager tripManager = ConsumerApi.getTripModelManager();
TripModel tripA = TripModelManager.getTripModel("trip_A");
// Session is NOT automatically started when created.
JourneySharingSession jsSessionA = JourneySharingSession.createInstance(tripA);
JourneySharingSession jsSessionB = JourneySharingSession.createInstance(tripB);
// But a session is automatically started when shown.
ConsumerController.showSession(jsSessionA);
ConsumerController.showSession(jsSessionB); // hides trip A; shows trip B.
ConsumerController.hideAllSessions(); // don't show any sessions
// Unregister listeners and delete UI elements of jsSessionA.
consumerController.showSession(jsSessionA);
jsSessionA.stop();
// Recreates and shows UI elements of jsSessionA.
jsSessionA.start();
Modüler mimari kod değişiklikleri
Araç Paylaşma uygulamanız, Tüketici SDK'sının önceki sürümlerini kullanıyorsa Güncellenen modüler mimari, kodunuzda bazı değişiklikler yapmanızı gerektirir. Bu bölümde bu değişikliklerden bazıları açıklanmaktadır.
Konum izinleri
FINE_LOCATION
izinleri artık gerekli değil
tarafından sağlanıyor.
Yolculuk izleme
Güncellenen modüler mimari, hem kullanıcı arayüzü kullanıcılarına yönelik olarak göz önünde bulunduruyoruz.
Önceki sürümlerde, bir veri katmanı kullanıcısı aşağıdaki kodu kullanarak seyahat izleme:
ConsumerApi.initialize()
TripModelManager manager = ConsumerApi.getTripManager()
manager.setActiveTrip("trip_id")
manager.registerActiveTripCallback(new TripModelCallback() {})
Modüler mimariyi kullanarak, veri katmanı kullanıcısı şu kodu kullanın:
ConsumerApi.initialize()
TripModelManager manager = ConsumerApi.getTripManager()
TripModel tripA = TripModelManager.getTrip("trip_A")
tripA.registerTripCallback(new TripModelCallback() {})
Önceki sürümlerde, seyahat izleme işlemi bir kullanıcı arayüzü kullanıcısı tarafından gerçekleştirilebilirdi. kullanabilirsiniz:
ConsumerApi.initialize()
TripModelManager manager = ConsumerApi.getTripManager()
manager.setActiveTrip("trip_id")
ConsumerController controller = consumerGoogleMap.getConsumerController();
consumerController.startJourneySharing()
Modüler mimariyi kullanarak, bir kullanıcı arayüzü kullanıcısı şu kodu kullanın:
ConsumerApi.initialize()
TripModelManager manager = ConsumerApi.getTripManager()
TripModel tripA = TripModelManager.getTripModel("trip_A");
ConsumerController controller = consumerGoogleMap.getConsumerController();
JourneySharingSession jsSessionA = JourneySharingSession.createInstance(tripA);
controller.showSession(jsSessionA);
Haritayı yeniden ortalama
Harita görünümü veya parçası artık kullanıcının konumunu yakınlaştırmıyor başlatma sırasında belirtmeyi unutmayın. Yine de süre boyunca, etkin yolculuk paylaşımı oturumunu göstermek üzere Otomatik Kamera özelliği etkin olduğundan emin olun. Otomatik Kamera varsayılan olarak etkindir.
Önceki sürümlerde, kamerayı ortalamak için aşağıdaki kodu kullanırsınız: şu anki etkin oturum için:
consumerController.centerMapForState()
Modüler mimariyi kullanarak aşağıdaki kodu kullanırsınız:
CameraUpdate cameraUpdate = consumerController.getCameraUpdate()
if (cameraUpdate != null) {
googleMap.animateCamera(cameraUpdate);
// OR googleMap.moveCamera(cameraUpdate);
}
Önceki sürümlerde AutoKamera özelliğini devre dışı bırakmak için, aşağıdaki kodu kullanmanız gerekir:
consumerController.disableAutoCamera(true);
Modüler mimariyi kullanarak aşağıdaki kodu kullanırsınız:
consumerController.setAutoCameraEnabled(false);
Özelleştirme
İsteğe Bağlı Yolculuk ve Teslimat Çözümü özel FAB'si haritadan kaldırıldı.
FAB için ilişkili yöntemler de kaldırıldı:
ConsumerController.isMyLocationFabEnabled()
ConsumerController.setMyLocationFabEnabled()