تحقیرها

با هر انتشار، API های خاص Android ممکن است منسوخ شوند یا برای ارائه یک تجربه توسعه دهنده بهتر یا پشتیبانی از قابلیت های پلتفرم جدید، نیاز به بازسازی مجدد داشته باشند. در این موارد، اندروید رسماً API های منسوخ شده را منسوخ می کند و توسعه دهندگان را به API های جدید هدایت می کند تا به جای آن از آنها استفاده کنند.

منسوخ شدن به این معنی است که ما به پشتیبانی رسمی از API ها پایان داده ایم، اما آنها همچنان در دسترس توسعه دهندگان خواهند بود. این صفحه برخی از موارد منسوخ شده در این نسخه از اندروید را برجسته می کند. برای مشاهده سایر موارد منسوخ، به گزارش تفاوت API مراجعه کنید.

RenderScript

با شروع Android 12، API های RenderScript منسوخ شده اند. آنها به کار خود ادامه خواهند داد، اما ما انتظار داریم که سازندگان دستگاه و قطعات به مرور زمان پشتیبانی از شتاب سخت افزاری را متوقف کنند. برای استفاده کامل از شتاب GPU، توصیه می‌کنیم از RenderScript خارج شوید .

لیست های پخش اندروید

لیست های پخش اندروید منسوخ شده است. API دیگر حفظ نمی شود اما عملکرد فعلی برای سازگاری باقی می ماند.

توصیه می کنیم لیست های پخش را به عنوان فایل های m3u بخوانید و ذخیره کنید.

نمایش منسوخ شدن های API

دستگاه‌های اندرویدی به شکل‌های مختلفی در دسترس هستند، مانند صفحه‌نمایش بزرگ، تبلت و تاشو. به منظور ارائه محتوا به طور مناسب برای هر دستگاه، برنامه شما باید اندازه صفحه یا نمایشگر را تعیین کند. با گذشت زمان اندروید API های مختلفی برای بازیابی این اطلاعات ارائه کرد. در اندروید 11 ما WindowMetrics API را معرفی کردیم و این روش ها را منسوخ کردیم:

در Android 12 ما همچنان استفاده از WindowMetrics را توصیه می کنیم و این روش ها را منسوخ می کنیم:

برنامه‌ها باید از APIهای WindowMetrics برای پرس‌وجو کردن محدوده‌های پنجره خود یا Configuration.densityDpi برای پرس‌وجو چگالی فعلی استفاده کنند.

توجه داشته باشید که کتابخانه Jetpack WindowManager شامل یک کلاس WindowMetrics است که از اندروید 4.0.1 (سطح API 14) و بالاتر پشتیبانی می کند.

نمونه ها

در اینجا چند نمونه از نحوه استفاده از WindowMetrics آورده شده است.

ابتدا، مطمئن شوید که برنامه شما می‌تواند فعالیت‌های خود را کاملاً قابل تغییر اندازه کند.

یک اکتیویتی باید به WindowMetrics از یک زمینه فعالیت برای هر کار مرتبط با رابط کاربری، به ویژه WindowManager.getCurrentWindowMetrics() متکی باشد.

اگر برنامه شما MediaProjection ایجاد می‌کند، کران‌ها باید به‌درستی اندازه‌بندی شوند، زیرا پروژکتور نمایشگر را می‌گیرد. اگر برنامه به طور کامل قابل تغییر اندازه باشد، زمینه فعالیت محدوده های صحیح را برمی گرداند.

کاتلین

val projectionMetrics = activityContext
        .getSystemService(WindowManager::class.java).maximumWindowMetrics

جاوا

WindowMetrics projectionMetrics = activityContext
        .getSystemService(WindowManager.class).getMaximumWindowMetrics();

اگر برنامه به طور کامل قابل تغییر اندازه نیست، باید کران ها را از یک نمونه WindowContext جستجو کند و WindowMetrics حداکثر ناحیه نمایش موجود برای برنامه را با استفاده از WindowManager.getMaximumWindowMetrics() بازیابی کند.

کاتلین

val windowContext = context.createWindowContext(mContext.display!!,
      WindowManager.LayoutParams.TYPE_APPLICATION, null)
val projectionMetrics = windowContext.getSystemService(WindowManager::class.java)
      .maximumWindowMetrics

جاوا

Context windowContext = mContext.createWindowContext(mContext.getDisplay(),
      WindowManager.LayoutParams.TYPE_APPLICATION, null;
WindowMetrics projectionMetrics = windowContext.getWindowManager()
      .getMaximumWindowMetrics();