Android उपभोक्ता SDK मॉड्यूल का माइग्रेशन

Android के लिए उपभोक्ता SDK टूल की मदद से, राइडशेयरिंग वाले ऐप्लिकेशन बनाए जा सकते हैं. इसके लिए में एक मॉड्यूलर आर्किटेक्चर शामिल है. एपीआई के अपनी पसंद के हिस्से का इस्तेमाल किया जा सकता है और उन्हें अपने एपीआई से इंटिग्रेट करें. उपभोक्ता SDK टूल अलग-अलग सुविधाओं के लिए, एपीआई अलग-अलग मॉड्यूल में रखे जाते हैं.

अगर राइडशेयरिंग ऐप्लिकेशन में, उपभोक्ता SDK टूल के पुराने वर्शन इस्तेमाल किए जाते हैं, तो इस मॉड्यूलर आर्किटेक्चर का इस्तेमाल करने के लिए, आपको अपना ऐप्लिकेशन अपग्रेड करना होगा. यह डेटा को दूसरी जगह भेजने से जुड़ी गाइड में, ऐप्लिकेशन को अपग्रेड करने का तरीका बताया गया है.

खास जानकारी

उपभोक्ता SDK टूल के मॉड्यूलर आर्किटेक्चर से आपको ऐसा सेशन ऑब्जेक्ट जो यूज़र इंटरफ़ेस की स्थिति बनाए रखता है. पिछले वर्शन में के मामले में इस्तेमाल किया जाता है. के साथ इस मॉड्यूलर आर्किटेक्चर से, कोई सेशन ऑब्जेक्ट बनाया जाता है और सेशन को मैप पर दिखाने का विकल्प होता है. अगर कोई सेशन नहीं है दिखाई गई हैं, तो मैप खाली है. अब "खाली" फ़ील्ड नहीं है या "शुरू की गई" राज्य.

सेशन ऑब्जेक्ट, किसी मॉड्यूल के सिंगल लाइफ़साइकल इस्तेमाल का इंस्टेंस दिखाता है. सेशन, मॉड्यूल एपीआई में ऐक्सेस पॉइंट होते हैं. उदाहरण के लिए, यात्रा शेयर करने का सेशन एक यात्रा के बाद शुरू होता है. आपने इंटरैक्ट किया जिसमें ट्रिप पर नज़र रखने के लिए सेशन ऑब्जेक्ट का इस्तेमाल किया गया हो.

सेशन ऑब्जेक्ट, किसी मॉड्यूल टाइप से जुड़ा होता है. सेशन ऑब्जेक्ट का व्यवहार को शुरू करने के लिए इस्तेमाल किए जाने वाले ऑब्जेक्ट के लाइफ़साइकल से जुड़ा होता है.

मान लें कि आपने TRIP_A को ट्रैक करने के लिए, TripModel ऑब्जेक्ट बनाया. अगर TRIP_A के लिए TripModel ऑब्जेक्ट फिर से पाने की कोशिश की जाती है, तो आपको वही TripModel ऑब्जेक्ट पाएं. TRIP_B को ट्रैक करने के लिए, नए TripModel ऑब्जेक्ट.

सेशन की स्थितियां

सेशन, इनमें से किसी भी स्थिति में हो सकता है:

  • बनाया गया सेशन, सेशन ऑब्जेक्ट से दिखाया जाता है. आप बनाएं create तरीके को कॉल करके एक सेशन. उदाहरण के लिए:

    JourneySharingSession sessionA = JourneySharingSession.createInstance(TripModelA)
    
  • डेटा और वैल्यू के अपडेट के लिए, शुरू किया गया सेशन रजिस्टर किया गया है यूज़र इंटरफ़ेस एलिमेंट का इस्तेमाल करता है. आप start तरीका. उदाहरण के लिए:

    sessionA.start()
    
  • दिखाया गया सेशन अपने-आप शुरू हो जाता है. यह यूज़र इंटरफ़ेस के एलिमेंट दिखाता है और डेटा अपडेट के हिसाब से उन्हें अपडेट करता है. आपने एक सेशन दिखाया showSession तरीके को कॉल करके. उदाहरण के लिए:

    ConsumerController.showSession(sessionA)
    
  • रुका हुआ सत्र अपने डेटा को रीफ़्रेश करना बंद कर देता है और यूज़र इंटरफ़ेस के एलिमेंट शामिल हैं. stop तरीके को कॉल करके सेशन को रोका जाता है. उदाहरण के लिए:

    sessionA.stop()
    

सिर्फ़-डेटा और यूज़र इंटरफ़ेस कॉम्पोनेंट का इस्तेमाल करना

सिर्फ़ डेटा वाले कॉम्पोनेंट में से किसी का भी इस्तेमाल करके, राइडशेयरिंग ऐप्लिकेशन बनाया जा सकता है या मांग पर राइड और डिलीवरी की सुविधा से मिले यूज़र इंटरफ़ेस एलिमेंट एपीआई का इस्तेमाल कर सकते हैं.

सिर्फ़ डेटा वाले कॉम्पोनेंट इस्तेमाल करना

सिर्फ़ डेटा इकट्ठा करने के लिए, राइड शेयरिंग ऐप्लिकेशन बनाने का तरीका:

  • ConsumerApi ऑब्जेक्ट शुरू करें.
  • ConsumerApi से TripModelManager ऑब्जेक्ट पाएं.
  • TripModel ऑब्जेक्ट पाने के लिए, TripModelManager की मदद से यात्रा को मॉनिटर करना शुरू करें.
  • TripModel ऑब्जेक्ट पर कॉलबैक रजिस्टर करें.

नीचे दिए गए उदाहरण में, सिर्फ़ डेटा वाले कॉम्पोनेंट इस्तेमाल करने का तरीका बताया गया है:

TripModelManager tripManager = ConsumerApi.getTripModelManager();
TripModel tripA = tripManager.getTripModel("trip_A");
tripA.registerTripCallback(new TripModelCallback() {})

यूज़र इंटरफ़ेस एलिमेंट एपीआई का इस्तेमाल करना

ऐक्सेस करने के लिए, ConsumerController ऑब्जेक्ट का इस्तेमाल करें मांग पर राइड और डिलीवरी की सुविधा का यूज़र इंटरफ़ेस एलिमेंट एपीआई.

मांग पर राइड और डिलीवरी की सुविधा वाला यूज़र इंटरफ़ेस उपलब्ध कराने के लिए, राइडशेयर करने वाला ऐप्लिकेशन बनाया गया एलिमेंट एपीआई:

  • ConsumerApi ऑब्जेक्ट शुरू करें.
  • ConsumerApi ऑब्जेक्ट से TripModelManager ऑब्जेक्ट पाएं.
  • TripModelManager से TripModel ऑब्जेक्ट पाएं, जो एक यात्रा को ट्रैक करता है.
  • ऐप्लिकेशन व्यू में ConsumerMap[View/Fragment] जोड़ें.
  • ConsumerMap[View/Fragment] से ConsumerController ऑब्जेक्ट पाएं.
  • JourneySharingSession ऑब्जेक्ट पाने के लिए, कंट्रोलर को TripModel ऑब्जेक्ट दें.
  • JourneySharingSession दिखाने के लिए, कंट्रोलर का इस्तेमाल करें.

नीचे दिए गए उदाहरण में, यूज़र इंटरफ़ेस एपीआई को इस्तेमाल करने का तरीका बताया गया है:

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();

मॉड्यूलर आर्किटेक्चर कोड में बदलाव

अगर राइडशेयरिंग ऐप्लिकेशन में, उपभोक्ता SDK टूल के पुराने वर्शन इस्तेमाल किए जाते हैं, तो अपडेट किए गए मॉड्यूलर आर्किटेक्चर के लिए आपको अपने कोड में कुछ बदलाव करने होंगे. इस सेक्शन में, इनमें से कुछ बदलावों के बारे में बताया गया है.

जगह की अनुमतियां

FINE_LOCATION अनुमतियों की अब ज़रूरत नहीं है कंज़्यूमर SDK टूल से.

यात्रा की निगरानी

अपडेट किए गए मॉड्यूलर आर्किटेक्चर के लिए, दोनों के कोड में बदलाव करना ज़रूरी है डेटा लेयर और यूज़र इंटरफ़ेस इस्तेमाल कर सकते हैं.

पुराने वर्शन में, डेटा-लेयर उपयोगकर्ता, अपनी यात्रा की निगरानी करने के लिए नीचे दिए गए कोड का इस्तेमाल करें:

ConsumerApi.initialize()
TripModelManager manager = ConsumerApi.getTripManager()
manager.setActiveTrip("trip_id")
manager.registerActiveTripCallback(new TripModelCallback() {})

मॉड्यूलर आर्किटेक्चर का इस्तेमाल करके, डेटा-लेयर उपयोगकर्ता को यह कोड डालें:

ConsumerApi.initialize()
TripModelManager manager = ConsumerApi.getTripManager()
TripModel tripA = TripModelManager.getTrip("trip_A")
tripA.registerTripCallback(new TripModelCallback() {})

इससे पहले के वर्शन में, ऐसा हो सकता है कि यूज़र इंटरफ़ेस का उपयोगकर्ता, यात्रा की निगरानी करने की सुविधा को मैनेज करे इस कोड का इस्तेमाल करें:

ConsumerApi.initialize()
TripModelManager manager = ConsumerApi.getTripManager()
manager.setActiveTrip("trip_id")

ConsumerController controller = consumerGoogleMap.getConsumerController();
consumerController.startJourneySharing()

मॉड्यूलर आर्किटेक्चर में, यूज़र-इंटरफ़ेस का इस्तेमाल करके यह कोड डालें:

ConsumerApi.initialize()
TripModelManager manager = ConsumerApi.getTripManager()
TripModel tripA = TripModelManager.getTripModel("trip_A");

ConsumerController controller = consumerGoogleMap.getConsumerController();
JourneySharingSession jsSessionA = JourneySharingSession.createInstance(tripA);
controller.showSession(jsSessionA);

मैप को फिर से सेंटर में करना

मैप व्यू या फ़्रैगमेंट अब उपयोगकर्ता की जगह पर ज़ूम नहीं करता कोई सेशन चालू न होने पर शुरू होने पर. यह अब भी गतिविधि शेयर करने के चालू सेशन को दिखाने के लिए, अपने-आप ज़ूम होने की सुविधा चालू की गई का विकल्प चुनें. AutoCamera डिफ़ॉल्ट रूप से चालू होता है.

पहले के वर्शन में, कैमरे को बीच में रखने के लिए आपको नीचे दिए गए कोड का इस्तेमाल करना होता था मौजूदा सक्रिय सेशन के लिए:

consumerController.centerMapForState()

मॉड्यूलर आर्किटेक्चर का इस्तेमाल करके, आपको इस कोड का इस्तेमाल करना होगा:

CameraUpdate cameraUpdate = consumerController.getCameraUpdate()
if (cameraUpdate != null) {
   googleMap.animateCamera(cameraUpdate);
   // OR googleMap.moveCamera(cameraUpdate);
}

पुराने वर्शन में AutoCamera सुविधा को बंद करने के लिए, आपको नीचे दिए गए कोड का इस्तेमाल करना होगा:

consumerController.disableAutoCamera(true);

मॉड्यूलर आर्किटेक्चर का इस्तेमाल करके, आपको इस कोड का इस्तेमाल करना होगा:

consumerController.setAutoCameraEnabled(false);

पसंद के मुताबिक बनाएं

मांग पर राइड और डिलीवरी की सुविधा देने वाला कस्टम एफ़एबी, मैप से हटा दिया गया है.

कस्टम एफ़एबी

एफ़एबी से जुड़े तरीके भी हटा दिए गए हैं:

ConsumerController.isMyLocationFabEnabled()
ConsumerController.setMyLocationFabEnabled()