Wear OS-এ Maps API

পরে থাকা যায় এমন ডিভাইসে ম্যাপ

Maps SDK for Android ব্যবহার করে, আপনি একটি ম্যাপ-ভিত্তিক পরিধানযোগ্য অ্যাপ তৈরি করতে পারবেন যা Wear OS by Google ডিভাইসে সরাসরি রান করে। আপনার অ্যাপের ব্যবহারকারীরা তাদের কব্জির দিকে এক ঝলক তাকিয়েই ম্যাপে তাদের লোকেশন দেখতে পারবেন। যেমন, তারা কোনও রুটে তাদের অবস্থান প্লট করতে পারেন, তারপরে বিবরণের জন্য জুম ইন করতে পারেন অথবা আপনার অ্যাপের মাধ্যমে প্রদান করা তথ্য উইন্ডো দেখতে কোনও মার্কার ট্যাপ করতে পারেন।

এই পৃষ্ঠায় ওয়্যার ডিভাইসে উপলভ্য API কার্যকারিতা সম্পর্কে বর্ণনা করা হয়েছে এবং আপনার অ্যাপ তৈরি করা শুরু করতে সাহায্য করে।

Wear OS ব্যবহার শুরু করা

Maps SDK for Android-এর সাহায্যে পরিধানযোগ্য অ্যাপ তৈরি করা, অন্য যেকোনও Android ডিভাইসের জন্য Google Maps অ্যাপ তৈরি করার মতোই মৌলিকভাবে একই রকম। অ্যাপের ব্যবহারযোগ্যতা ও পারফর্ম্যান্স অপ্টিমাইজ করার জন্য, পরে থাকা যায় এমন ডিভাইসের ছোট ফর্ম ফ্যাক্টরের জন্য আপনার ডিজাইনে পার্থক্য রয়েছে।

Wear OS ডেভেলপমেন্টের জন্য Android Studio হল সাজেস্ট করা টুল, কারণ এটি প্রজেক্ট সেট-আপ, লাইব্রেরি অন্তর্ভুক্ত করা এবং প্যাকেজিং সুবিধা প্রদান করে।

ওয়্যারেবল অ্যাপ ডিজাইন করার ব্যাপারে সাধারণ সহায়তার জন্য, Wear OS ডিজাইন সংক্রান্ত নির্দেশিকা দেখুন। আপনার প্রথম ওয়্যারেবল অ্যাপ তৈরি করার ব্যাপারে সাহায্য পেতে, ওয়্যারেবল অ্যাপ তৈরি করা সংক্রান্ত নির্দেশিকা দেখুন।

Wear OS-এ আপনার প্রথম Maps অ্যাপ তৈরি করা

এই কুইক গাইডে ধরে নেওয়া হয়েছে যে আপনি Maps SDK for Android সম্পর্কে জানেন, আপনি Wear OS গাইড অনুসরণ করে আপনার অ্যাপে হালকা ও ছোট ডিভাইসের মডিউল তৈরি করেছেন এবং এখন আপনি হালকা ও ছোট ডিভাইসের মডিউলে ম্যাপ যোগ করতে চান।

আপনার Wear মডিউলের জন্য ডিপেন্ডেন্সি যোগ করা হচ্ছে

আপনার অ্যাপের Wear OS মডিউলের build.gradle.kts ফাইলে নিম্নলিখিত ডিপেন্ডেন্সি অন্তর্ভুক্ত আছে কিনা তা নিশ্চিত করুন:

dependencies {
    // ...
    // Modern Android projects use version catalogs to manage dependencies.  To include the necessary dependencies,
    // first add the following to your libs.versions.toml file:
    //
    // [versions]
    // playServicesMaps = "20.0.0"
    // wear = "1.4.0"
    // wearable = "2.9.0"
    //
    // [libraries]
    // play-services-maps = { group = "com.google.android.gms", name = "play-services-maps", version.ref = "playServicesMaps" }
    // wear = { group = "androidx.wear", name = "wear", version.ref = "wear" }
    // wearable-compile = { group = "com.google.android.wearable", name = "wearable", version.ref = "wearable" }
    // wearable-support = { group = "com.google.android.support", name = "wearable", version.ref = "wearable" }

    compileOnly(libs.wearable.compile)
    implementation(libs.wearable.support)
    implementation(libs.play.services.maps)

    // This dependency is necessary for ambient mode
    implementation(libs.wear)

    // Android Test Dependencies
    androidTestImplementation(libs.ext.junit)
    androidTestImplementation(libs.espresso.core)
    androidTestImplementation(libs.uiautomator)
    androidTestImplementation(libs.truth)
    androidTestImplementation(libs.junit)
    
    // If your project does not use a version catalog, you can use the following dependencies instead:
    //
    //    compileOnly("com.google.android.wearable:wearable:2.9.0")
    //    implementation("com.google.android.support:wearable:2.9.0")
    //    implementation("com.google.android.gms:play-services-maps:20.0.0")
    //    implementation("androidx.wear:wear:1.4.0")
    //    androidTestImplementation("androidx.test.ext:junit:1.3.0")
    //    androidTestImplementation("androidx.test.espresso:espresso-core:3.7.0")
    //    androidTestImplementation("androidx.test.uiautomator:uiautomator:2.3.0")
    //    androidTestImplementation("com.google.truth:truth:1.4.5")
    //    androidTestImplementation("junit:junit:4.13.2")
}

নির্ভরতা সম্পর্কে আরও তথ্যের জন্য, আপনার আগে থেকে থাকা প্রোজেক্টে Wear OS মডিউল যোগ করুন লিঙ্কে গিয়ে নির্দেশিকা দেখুন।

সোয়াইপ করে বাতিল করার জেসচার প্রয়োগ করা এবং প্রাথমিক ব্যাকগ্রাউন্ড রঙ সেট করা

ওয়্যারেবল ডিভাইসে ম্যাপ দেখাতে SwipeDismissFrameLayout ব্যবহার করার জন্য সাজেস্ট করা হয়। SwipeDismissFrameLayout ক্লাস ব্যবহার করে, আপনি সোয়াইপ করে বাতিল করা জেসচার প্রয়োগ করতে পারবেন। এর ফলে ব্যবহারকারীরা স্ক্রিনের সবচেয়ে বাঁদিকের প্রান্ত থেকে সোয়াইপ করে অ্যাপ থেকে বেরিয়ে আসতে পারবেন।

কাস্টম প্রাথমিক ব্যাকগ্রাউন্ড রঙ সেট করতে, আসল ম্যাপ টাইল লোড না হওয়া পর্যন্ত দেখানোর জন্য রঙ নির্ধারণ করতে map:backgroundColor XML অ্যাট্রিবিউট ব্যবহার করুন।

SupportMapFragment-এর কন্টেনার হিসেবে আপনার লেআউট সংজ্ঞায় SwipeDismissFrameLayout এবং backgroundColor এলিমেন্ট যোগ করুন:

  <androidx.wear.widget.SwipeDismissFrameLayout
      android:id="@+id/map_container"
      android:layout_width="match_parent"
      android:layout_height="match_parent">
    <fragment
        android:id="@+id/map"
        android:name="com.google.android.gms.maps.SupportMapFragment"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        map:backgroundColor="#fff0b2dd" />
  </androidx.wear.widget.SwipeDismissFrameLayout>

আপনার অ্যাক্টিভিটিতে SwipeDismissFrameLayout অবজেক্ট পেলে, একটি কলব্যাক যোগ করুন এবং নিচে দেখানো অনুযায়ী প্রয়োজনীয় বাতিল করার অ্যাকশন পারফর্ম করার জন্য কলব্যাকের আচরণ সেট করুন:

Kotlin

class MainActivity : AppCompatActivity(), OnMapReadyCallback,
                     AmbientModeSupport.AmbientCallbackProvider {


    public override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)

        // Set the layout. It only contains a SupportMapFragment and a DismissOverlay.
        setContentView(R.layout.activity_main)

        // Enable ambient support, so the map remains visible in simplified, low-color display
        // when the user is no longer actively using the app but the app is still visible on the
        // watch face.
        try {
            val controller = AmbientModeSupport.attach(this)
            Log.d(MainActivity::class.java.simpleName, "Is ambient enabled: " + controller.isAmbient)
        } catch (e: Exception) {
            Log.w(MainActivity::class.java.simpleName, "Ambient mode unavailable on this device: ${e.message}")
        }

        // Retrieve the containers for the root of the layout and the map. Margins will need to be
        // set on them to account for the system window insets.
        val mapFrameLayout = findViewById<SwipeDismissFrameLayout>(R.id.map_container)
        mapFrameLayout.addCallback(object : SwipeDismissFrameLayout.Callback() {
            override fun onDismissed(layout: SwipeDismissFrameLayout) {
                onBackPressed()
            }
        })

        // Obtain the MapFragment and set the async listener to be notified when the map is ready.
        mapFragment = supportFragmentManager
            .findFragmentById(R.id.map) as SupportMapFragment
        mapFragment.getMapAsync(this)
    }

    // ...
}

      

Java

public class MainActivity extends AppCompatActivity implements OnMapReadyCallback,
    AmbientModeSupport.AmbientCallbackProvider {


    public void onCreate(Bundle savedState) {
        super.onCreate(savedState);

        // Set the layout. It only contains a SupportMapFragment and a DismissOverlay.
        setContentView(R.layout.activity_main);

        // Enable ambient support, so the map remains visible in simplified, low-color display
        // when the user is no longer actively using the app but the app is still visible on the
        // watch face.
        try {
            AmbientModeSupport.AmbientController controller = AmbientModeSupport.attach(this);
            Log.d(MainActivity.class.getSimpleName(), "Is ambient enabled: " + controller.isAmbient());
        } catch (Exception e) {
            Log.w(MainActivity.class.getSimpleName(), "Ambient mode unavailable on this device: " + e.getMessage());
        }

        // Retrieve the containers for the root of the layout and the map. Margins will need to be
        // set on them to account for the system window insets.
        final SwipeDismissFrameLayout mapFrameLayout = (SwipeDismissFrameLayout) findViewById(
            R.id.map_container);
        mapFrameLayout.addCallback(new SwipeDismissFrameLayout.Callback() {
            @Override
            public void onDismissed(SwipeDismissFrameLayout layout) {
                onBackPressed();
            }
        });

        // Obtain the MapFragment and set the async listener to be notified when the map is ready.
        mapFragment = (SupportMapFragment) getSupportFragmentManager()
            .findFragmentById(R.id.map);
        mapFragment.getMapAsync(this);
    }

    // ...
}

      

ম্যাপ যোগ করা হচ্ছে

GoogleMap অবজেক্টের হ্যান্ডেল পেতে, আগের মতোই onMapReady(GoogleMap) কলব্যাক পদ্ধতি ব্যবহার করুন। ম্যাপ ব্যবহার করার জন্য রেডি হয়ে গেলে কলব্যাক ট্রিগার করা হয়। কলব্যাক পদ্ধতিতে, আপনি ম্যাপে মার্কার বা পলিলাইন যোগ করতে, শ্রোতা যোগ করতে বা ক্যামেরা সরাতে পারেন। নিচের উদাহরণে সিডনি অপেরা হাউসের কাছে একটি মার্কার যোগ করা হয়েছে:

Kotlin

private val sydney = LatLng(-33.85704, 151.21522)

override fun onMapReady(googleMap: GoogleMap) {
    // Add a marker with a title that is shown in its info window.
    googleMap.addMarker(
        MarkerOptions().position(sydney)
            .title("Sydney Opera House")
    )

    // Move the camera to show the marker.
    googleMap.moveCamera(CameraUpdateFactory.newLatLngZoom(sydney, 10f))
}

      

Java

private static final LatLng SYDNEY = new LatLng(-33.85704, 151.21522);

@Override
public void onMapReady(@NonNull GoogleMap googleMap) {
    // Add a marker with a title that is shown in its info window.
    googleMap.addMarker(new MarkerOptions().position(SYDNEY)
        .title("Sydney Opera House"));

    // Move the camera to show the marker.
    googleMap.moveCamera(CameraUpdateFactory.newLatLngZoom(SYDNEY, 10));
}

      

অ্যাম্বিয়েন্ট মোড চালু করা হচ্ছে

Android-এর জন্য Maps SDK, ওয়্যারেবল অ্যাপের জন্য অ্যাম্বিয়েন্ট মোড সাপোর্ট করে। অ্যাম্বিয়েন্ট মোড কাজ করে এমন অ্যাপকে কখনও কখনও সবসময় চালু থাকা অ্যাপ বলা হয়। ব্যবহারকারী অ্যাপটি আর সক্রিয়ভাবে ব্যবহার না করলে অ্যাম্বিয়েন্ট মোড চালু হয়, এবং পরে থাকা যায় এমন ডিভাইসে অ্যাপটি দৃশ্যমান রাখতে দেয়।

Maps SDK for Android, অ্যাম্বিয়েন্ট মোডে ব্যবহারের জন্য ম্যাপের একটি সরলীকৃত, কম-রঙের রেন্ডারিং প্রদান করে এবং ডিভাইসটি ইন্টার‍্যাক্টিভ থেকে অ্যাম্বিয়েন্ট মোডে সোয়্যাপ করলে ম্যাপ স্টাইল অটোমেটিক অ্যাডজাস্ট হয়ে যায়। অ্যাম্বিয়েন্ট মোডে সব মার্কার, অবজেক্ট ও UI কন্ট্রোল অদৃশ্য হয়ে যায়। এটি আপনার অ্যাপের ব্যাটারি খরচ কমায় এবং অন্যান্য অ্যাম্বিয়েন্ট অ্যাপের সাথে সামঞ্জস্যপূর্ণ লুক ও ফিল নিশ্চিত করে, যেমন ওয়াচ ফেস।

আপনার অ্যাপ ম্যাপের অ্যাম্বিয়েন্ট মোড ব্যবহার করছে কিনা তা নিশ্চিত করতে এইসব ধাপ অনুসরণ করুন:

  1. Android 6.0 (API 23) বা তার পরের যেকোনও ভার্সন প্ল্যাটফর্ম অন্তর্ভুক্ত করতে আপনার Android SDK আপডেট করুন, যা এমন API প্রদান করে যা অ্যাক্টিভিটিগুলিকে অ্যাম্বিয়েন্ট মোডে যেতে দেয়। আপনার SDK কীভাবে আপডেট করবেন সেই সম্পর্কে তথ্যের জন্য, SDK প্যাকেজ যোগ করা সম্পর্কে Android ডকুমেন্টেশন দেখুন।
  2. অ্যাপ ম্যানিফেস্টে targetSdkVersion-এর মান 23 বা তার বেশি সেট করে, আপনার প্রজেক্ট Android 6.0 বা তার পরবর্তী যেকোনও ভার্সনকে টার্গেট করছে কিনা তা নিশ্চিত করুন।
  3. আপনার অ্যাপের build.gradle.kts ফাইলে হালকা ও ছোট ডিভাইসের ডিপেন্ডেন্সি যোগ করুন। এই পৃষ্ঠায় স্যাম্পেল দেখুন।
  4. ওয়্যারেবল অ্যাপ ম্যানিফেস্টে ওয়্যারেবল শেয়ার করা লাইব্রেরি এন্ট্রি যোগ করুন, যেমনটি আপনার অ্যাপ দৃশ্যমান রাখা সংক্রান্ত Android ট্রেনিং ক্লাসে বর্ণনা করা হয়েছে।
  5. হ্যান্ডহেল্ড ও পরিধানযোগ্য অ্যাপ ম্যানিফেস্টে WAKE_LOCK অনুমতি যোগ করুন, যেমনটি Android ট্রেনিং ক্লাসে আপনার অ্যাপকে দৃশ্যমান রাখা নিবন্ধে বর্ণনা করা হয়েছে।
  6. আপনার অ্যাক্টিভিটির onCreate() পদ্ধতিতে, AmbientModeSupport.attach() পদ্ধতি কল করুন। এটি অপারেটিং সিস্টেমকে জানায় যে অ্যাপ্লিকেশনটি সবসময় চালু আছে, তাই ডিভাইস বন্ধ হয়ে গেলে, সেটি যেন ওয়াচ ফেসে ফিরে না গিয়ে অ্যাম্বিয়েন্ট মোডে চলে যায়।
  7. আপনার অ্যাক্টিভিটিতে AmbientModeSupport.AmbientCallbackProvider ইন্টারফেস প্রয়োগ করুন যাতে এটি অ্যাম্বিয়েন্ট মোড স্ট্যাটাস পরিবর্তন রিসিভ করতে পারে।
  8. অ্যাম্বিয়েন্ট মোডে কাজ করার জন্য আপনার ম্যাপ সেট করুন। আপনি অ্যাক্টিভিটির XML লেআউট ফাইলে map:ambientEnabled="true" অ্যাট্রিবিউট সেট করে এটি করতে পারেন অথবা GoogleMapOptions.ambientEnabled(true) সেট করে প্রোগ্রাম্যাটিক্যালি এটি করতে পারেন। এই সেটিং API-কে জানায় যে অ্যাম্বিয়েন্ট মোডে ব্যবহারের জন্য প্রয়োজনীয় ম্যাপ টাইল প্রি-লোড করতে হবে।
  9. অ্যাক্টিভিটি অ্যাম্বিয়েন্ট মোডে পরিবর্তন হলে, সিস্টেম আপনার প্রদান করা AmbientCallback-এ onEnterAmbient() মেথড কল করে। onEnterAmbient() ওভাররাইড করে SupportMapFragment.onEnterAmbient(ambientDetails) অথবা MapView.onEnterAmbient(ambientDetails) নম্বরে কল করুন। API, ম্যাপের নন-ইন্টার‍্যাক্টিভ ও কম-কালার রেন্ডারিংয়ে অদল-বদল করে।
  10. একইভাবে, onExitAmbient() নম্বরে কল করুন SupportMapFragment.onExitAmbient() বা MapView.onExitAmbient() নম্বরে। API ম্যাপের স্বাভাবিক রেন্ডারিংয়ে পরিবর্তন করে।

নিম্নলিখিত কোড স্যাম্পেল অ্যাক্টিভিটিতে অ্যাম্বিয়েন্ট মোড চালু করে:

Kotlin

class AmbientActivity : AppCompatActivity(), AmbientModeSupport.AmbientCallbackProvider {

    private lateinit var mapFragment: SupportMapFragment

    public override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)

        // Set the layout. It only contains a SupportMapFragment and a DismissOverlay.
        setContentView(R.layout.activity_main)

        // Enable ambient support, so the map remains visible in simplified, low-color display
        // when the user is no longer actively using the app but the app is still visible on the
        // watch face.
        try {
            val controller = AmbientModeSupport.attach(this)
            Log.d(AmbientActivity::class.java.simpleName, "Is ambient enabled: " + controller.isAmbient)
        } catch (e: Exception) {
            Log.w(AmbientActivity::class.java.simpleName, "Ambient mode unavailable on this device: ${e.message}")
        }

        // Obtain the MapFragment and set the async listener to be notified when the map is ready.
        mapFragment = supportFragmentManager
            .findFragmentById(R.id.map) as SupportMapFragment
    }

    override fun getAmbientCallback(): AmbientModeSupport.AmbientCallback {
        return object : AmbientModeSupport.AmbientCallback() {
            /**
             * Starts ambient mode on the map.
             * The API swaps to a non-interactive and low-color rendering of the map when the user is no
             * longer actively using the app.
             */
            override fun onEnterAmbient(ambientDetails: Bundle) {
                super.onEnterAmbient(ambientDetails)
                mapFragment.onEnterAmbient(ambientDetails)
            }

            /**
             * Exits ambient mode on the map.
             * The API swaps to the normal rendering of the map when the user starts actively using the app.
             */
            override fun onExitAmbient() {
                super.onExitAmbient()
                mapFragment.onExitAmbient()
            }
        }
    }
}

      

Java

public class AmbientActivity extends AppCompatActivity implements
    AmbientModeSupport.AmbientCallbackProvider {

    private SupportMapFragment mapFragment;

    public void onCreate(Bundle savedState) {
        super.onCreate(savedState);

        // Set the layout. It only contains a SupportMapFragment and a DismissOverlay.
        setContentView(R.layout.activity_main);

        // Enable ambient support, so the map remains visible in simplified, low-color display
        // when the user is no longer actively using the app but the app is still visible on the
        // watch face.
        try {
            AmbientModeSupport.AmbientController controller = AmbientModeSupport.attach(this);
            Log.d(AmbientActivity.class.getSimpleName(), "Is ambient enabled: " + controller.isAmbient());
        } catch (Exception e) {
            Log.w(AmbientActivity.class.getSimpleName(), "Ambient mode unavailable on this device: " + e.getMessage());
        }

        // Obtain the MapFragment and set the async listener to be notified when the map is ready.
        mapFragment = (SupportMapFragment) getSupportFragmentManager()
            .findFragmentById(R.id.map);
    }

    @Override
    public AmbientCallback getAmbientCallback() {
        return new AmbientCallback() {
            /**
             * Starts ambient mode on the map.
             * The API swaps to a non-interactive and low-color rendering of the map when the user is no
             * longer actively using the app.
             */
            @Override
            public void onEnterAmbient(Bundle ambientDetails) {
                super.onEnterAmbient(ambientDetails);
                mapFragment.onEnterAmbient(ambientDetails);
            }

            /**
             * Exits ambient mode on the map.
             * The API swaps to the normal rendering of the map when the user starts actively using the app.
             */
            @Override
            public void onExitAmbient() {
                super.onExitAmbient();
                mapFragment.onExitAmbient();
            }
        };
    }
}

      

অ্যাপ অ্যাম্বিয়েন্ট মোডে থাকাকালীন আপনি স্ক্রিন আপডেট করতে পারবেন। কন্টেন্ট আপডেট করা এবং অ্যাম্বিয়েন্ট মোড সম্পর্কে আরও জানতে, আপনার অ্যাপকে দৃশ্যমান রাখা সংক্রান্ত Android ট্রেনিং ক্লাস দেখুন।

Wear OS-এ Street View ব্যবহার করা

পরে থাকা যায় এমন ডিভাইসে Street View সম্পূর্ণভাবে কাজ করে।

Street View প্যানোরামা দেখার সময় ব্যবহারকারীদের অ্যাপ থেকে বেরিয়ে আসার অনুমতি দিতে, দীর্ঘক্ষণ ক্লিক জেসচার শোনার জন্য StreetViewPanorama.OnStreetViewPanoramaLongClickListener ইন্টারফেস ব্যবহার করুন। কোনও ব্যবহারকারী Street View ছবিতে কোথাও লং-ক্লিক করলে, আপনি একটি onStreetViewPanoramaLongClick(StreetViewPanoramaOrientation) ইভেন্ট পাবেন। বেরিয়ে আসার বোতাম দেখতে DismissOverlayView.show() কল করুন।

নমুনা কোড

GitHub-এ একটি নমুনা অ্যাপ উপলভ্য আছে, যেটি আপনি নিজের অ্যাপের জন্য শুরু করার পয়েন্ট হিসেবে ব্যবহার করতে পারবেন। Wear OS-এ কীভাবে একটি প্রাথমিক Google Map সেট-আপ করতে হয় তা নমুনাটি আপনাকে দেখায়।

Wear OS-এ Maps API-তে কাজ করে এমন ফাংশনালিটি

এই বিভাগে, পরে থাকা যায় এমন ডিভাইসে ম্যাপের জন্য কাজ করে এমন ফাংশনালিটির সাথে হ্যান্ডহেল্ড ডিভাইসের (ফোন ও ট্যাবলেট) ফাংশনালিটির পার্থক্য দেখানো হয়েছে। নিচে উল্লেখ করা হয়নি এমন সব API ফিচার সম্পূর্ণ API-এর জন্য ডকুমেন্ট করা হিসেবে কাজ করা উচিত।

কার্যকারিতা
সম্পূর্ণ ইন্টার‍্যাক্টিভ মোড ও লাইট মোড

আপনি Android-এর জন্য Maps SDK সম্পূর্ণ ইন্টার‍্যাক্টিভ মোডে অথবা লাইট মোডে ব্যবহার করতে পারবেন। আপনি যদি পরিধানযোগ্য ডিভাইসে পারফর্ম্যান্স অপ্টিমাইজ করতে চান এবং আপনার অ্যাপে যদি জেসচার বা ম্যাপ প্যান ও জুম করার মতো ইন্টার‍্যাকশন কাজ না করে, তাহলে লাইট মোড ব্যবহার করার কথা বিবেচনা করুন।

লাইট মোডে, ব্যবহারকারী ম্যাপে ট্যাপ করলে Google Maps মোবাইল অ্যাপ চালু করার ইনটেন্ট বন্ধ করা থাকে এবং পরে থাকা যায় এমন ডিভাইসে এটি চালু করা যায় না।

লাইট মোড ও সম্পূর্ণ ইন্ট্যার‍্যাক্টিভ মোডের মধ্যে পার্থক্যগুলির সম্পূর্ণ তালিকা দেখতে, লাইট মোড ডকুমেন্টেশন দেখুন।

ম্যাপ টুলবার ম্যাপ টুলবার বন্ধ করা আছে এবং পরে থাকা যায় এমন ডিভাইসে চালু করা যাবে না।
UI কন্ট্রোল পরে থাকা যায় এমন ডিভাইসে UI কন্ট্রোল ডিফল্ট হিসেবে বন্ধ থাকে। এর মধ্যে জুম, কম্পাস ও আমার লোকেশন কন্ট্রোল অন্তর্ভুক্ত। আপনি স্বাভাবিকভাবেই UiSettings ক্লাস ব্যবহার করে সেগুলি চালু করতে পারবেন।
জেসচার সিঙ্গেল-টাচ জেসচার প্রত্যাশিতভাবে কাজ করে। যেমন, ম্যাপ প্যান করতে টাচ করে টেনে আনা, জুম-ইন করতে ডবল ট্যাপ করা এবং জুম-আউট করতে দুটি আঙুল দিয়ে ট্যাপ করা। ব্যবহারকারীর ডিভাইসের উপর নির্ভর করে মাল্টি-টাচ জেসচারের ক্ষেত্রে সহায়তা আলাদা আলাদা হয়। মাল্টি-টাচ জেসচারের উদাহরণের মধ্যে রয়েছে ম্যাপ টিল্ট করার জন্য দুটি আঙুল দিয়ে পুশ করা, জুম করার জন্য পিঞ্চ করা এবং দুটি আঙুল দিয়ে ঘোরানো।
ইনডোর ম্যাপ ও বিল্ডিং ওয়্যারেবল ডিভাইসে ইনডোর ম্যাপ সাধারণত বন্ধ করা থাকে। আপনি GoogleMap.setIndoorEnabled(true)-এ কল করে এগুলি চালু করতে পারবেন। ইনডোর ম্যাপ চালু করা থাকলে, ম্যাপে ডিফল্ট ফ্লোর লেভেল দেখানো হবে। লেভেল পিকার UI এলিমেন্ট পরে থাকা যায় এমন ডিভাইসে কাজ করে না।
টাইল ওভারলে পরে থাকা যায় এমন ডিভাইসে টাইল ওভারলে কাজ করে না।

Wear OS-এ Maps API-এর মাধ্যমে ডেভেলপ করার পেশাদার পদ্ধতি

আপনার অ্যাপে কীভাবে ব্যবহারকারীকে সবচেয়ে ভালো অভিজ্ঞতা প্রদান করবেন:

  • ম্যাপটি স্ক্রিনের একটি বড় অংশ জুড়ে থাকা উচিত। এটি পরিধানযোগ্য ডিভাইসের ছোট ফর্ম ফ্যাক্টরে ম্যাপের ব্যবহারযোগ্যতা অপ্টিমাইজ করার জন্য প্রয়োজনীয়।
  • আপনার অ্যাপের ব্যবহারকারীর অভিজ্ঞতা ডিজাইন করার সময়, এই বিষয়টি মাথায় রাখবেন যে পরে থাকা যায় এমন ডিভাইসের ব্যাটারি পাওয়ার কম হয়। স্ক্রিন চালু রাখা এবং ম্যাপ দৃশ্যমান রাখলে ব্যাটারি পারফর্ম্যান্সের উপর প্রভাব পড়বে।