Android Tüketici SDK'sı Modülerleştirme İşlemi İçin Taşıma

Android için Tüketici SDK'sı, araç paylaşma uygulamaları oluşturmak için 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 nesnesiyle.

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 öğesinden TripModelManager nesnesini alın.
  • TripModel nesnesi almak için TripModelManager 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 bir TripModelManager nesnesi alın.
  • TripModelManager ürününden, bir seyahati izleyen TripModel nesnesi edinin.
  • ConsumerMap[View/Fragment] öğesini uygulama görünümüne ekleyin.
  • ConsumerMap[View/Fragment] öğesinden bir ConsumerController nesnesi alın.
  • JourneySharingSession nesnesini almak için TripModel 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ı.

Özel FAB

FAB için ilişkili yöntemler de kaldırıldı:

ConsumerController.isMyLocationFabEnabled()
ConsumerController.setMyLocationFabEnabled()