قبل از شروع این مراحل، مطمئن شوید که سرویسهای مناسب و Consumer SDK را همانطور که در بخشهای قبلی توضیح داده شد، فعال کردهاید.
برای مقداردهی اولیه SDK مربوط به Consumer، مراحل زیر را دنبال کنید:
دریافت نمونه ConsumerApi
برای استفاده از Consumer SDK، برنامه شما باید Singleton ConsumerApi را به صورت غیرهمزمان مقداردهی اولیه کند. متد مقداردهی اولیه، کلاس AuthTokenFactory برای تولید توکنهای JWT جدید برای کاربر در صورت لزوم میگیرد.
providerId شناسه پروژه پروژه Google Cloud شما است. برای اطلاعات بیشتر در مورد ایجاد یک پروژه Fleet Engine، به بخش «ایجاد پروژه Fleet Engine» در راهنمای Fleet Engine مراجعه کنید.
برنامه شما باید AuthTokenFactory را همانطور که در بخش احراز هویت SDK مصرفکننده توضیح داده شده است، پیادهسازی کند.
جاوا
Task<ConsumerApi> consumerApiTask = ConsumerApi.initialize(
this, "myProviderId", authTokenFactory);
consumerApiTask.addOnSuccessListener(
consumerApi -> this.consumerApi = consumerApi);
کاتلین
val consumerApiTask =
ConsumerApi.initialize(this, "myProviderId", authTokenFactory)
consumerApiTask?.addOnSuccessListener { consumerApi: ConsumerApi ->
this@YourActivity.consumerApi = consumerApi
}
SDK نقشهها و رندرکنندههای نقشهها
SDK مصرفکننده نسخه ۲.۰.۰ و بالاتر، از Maps SDK برای اندروید نسخه ۱۸.۱.۰ و بالاتر پشتیبانی میکند. جدول زیر رندرکننده پیشفرض را بر اساس نسخه Maps SDK و قابلیت پشتیبانی هر دو رندرکننده خلاصه میکند. در صورت امکان، از جدیدترین رندرکننده استفاده کنید. اگر مجبور به استفاده از رندرکننده قدیمی هستید، آن را به صراحت با استفاده از MapsInitializer.initialize() مشخص کنید.
| نسخه SDK نقشهها | از جدیدترین رندرکننده پشتیبانی میکند | از رندرکننده قدیمی پشتیبانی میکند | رندرکننده پیشفرض |
|---|---|---|---|
| نسخه ۱۸.۱.۰ و پایینتر | بله | بله | میراث* |
| نسخه ۱۸.۲.۰ | بله | بله | جدیدترینها |
* با عرضهی رندرکنندهی جدید نقشهها ، آخرین رندرکننده پیشفرض خواهد بود.
اگر مجبور به استفاده از یک رندرکنندهی ترجیحی هستید، تمام عملیات رندر رابط کاربری را پس از اینکه OnMapsSdkInitializedCallback نتیجهای را برمیگرداند، اجرا کنید. عملیات رندر رابط کاربری شامل عملیات زیر است:
متورم کردن یک view که شامل
GoogleMapViewیاConsumerMapViewاست.قرار دادن نشانگرها در
ConsumerMapView.
اگر این عملیات را پس از دریافت نتیجه OnMapsSdkInitializedCallback اجرا نکنید، Maps SDK رندرکننده دلخواه شما را اختصاص نمیدهد و نمای نقشه توسط رندرکننده پیشفرض رندر میشود.
قبل از مقداردهی اولیه SDK مصرفکننده، Maps SDK را مقداردهی اولیه کنید
در کلاس
Applicationیا StartupActivityخود، تابع MapsInitializer.initialize() را فراخوانی کنید.قبل از مقداردهی اولیهی Consumer SDK، منتظر نتیجهی درخواست رندرکننده باشید.
برای جزئیات به مثالهای زیر مراجعه کنید.
جاوا
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
initViews();
MapsInitializer.initialize(getApplicationContext(), Renderer.LATEST,
new OnMapsSdkInitializedCallback() {
@Override
public void onMapsSdkInitialized(Renderer renderer) {
switch (renderer) {
case LATEST:
Log.i("maps_renderer", "LATEST renderer");
break;
case LEGACY:
Log.i("maps_renderer", "LEGACY renderer");
break;
}
initializeConsumerSdk();
}
});
}
کاتلین
fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.main)
initViews()
MapsInitializer.initialize(
getApplicationContext(), Renderer.LATEST,
object : OnMapsSdkInitializedCallback() {
fun onMapsSdkInitialized(renderer: Renderer?) {
when (renderer) {
LATEST -> Log.i("maps_renderer", "LATEST renderer")
LEGACY -> Log.i("maps_renderer", "LEGACY renderer")
}
initializeConsumerSdk()
}
})
}
نکاتی در مورد SSL/TLS
در داخل، پیادهسازی Consumer SDK از SSL/TLS برای برقراری ارتباط ایمن با سرویس Fleet Engine استفاده میکند. نسخههای ۲۳ یا قبلتر API اندروید ممکن است برای ارتباط با سرور به وصله SecurityProvider نیاز داشته باشند. برای اطلاعات بیشتر در مورد کار با SSL در اندروید، به Security GMS Provider مراجعه کنید. این مقاله همچنین شامل نمونههای کد برای وصله کردن ارائهدهنده امنیتی است.