اعلانها در Android 13 از یک مدل Opt-in استفاده میکنند که تغییری نسبت به نسخههای قبلی اندروید است که از یک مدل انصراف استفاده میکنند. در اندروید 13، همه برنامهها باید قبل از ارسال پیامهای اعلان از کاربران اجازه بگیرند. این مدل به کاهش وقفههای اعلانها کمک میکند، اضافه بار اطلاعات را به حداقل میرساند و به کاربران کمک میکند تا بر اساس آنچه برایشان مهم است، اعلانهایی را کنترل کنند. برای پشتیبانی از مدل Opt-in، OEM ها باید تغییراتی را در سیستم های مجوز اعلان و زمان اجرا اعمال کنند.
این صفحه توضیح میدهد که OEMها باید چه چیزهایی را برای پشتیبانی از این تغییر پیادهسازی کنند و چگونه پیادهسازی را تأیید کنند.
تغییرات را برای اعلانهای انتخابی اعمال کنید
با شروع Android 13، برنامهها باید قصد خود را برای ارسال اعلانها با درخواست مجوز زمان اجرا android.permission.POST_NOTIFICATION
از سیستم قبل از ارسال اعلانها اعلام کنند.
در اندروید 13 و بالاتر، تنظیماتی که تعیین میکند آیا برنامه میتواند اعلانها را برای کاربر ارسال کند، در سیستم مجوز ذخیره میشود. قبل از اندروید 13، این تنظیمات در سیستم اعلان ذخیره می شد. از این رو، OEM ها باید داده های اعلان موجود را در مورد اینکه آیا یک برنامه مجاز به ارسال اعلان است یا خیر، از سیستم اعلان به سیستم مجوز زمان اجرا منتقل کنند. OEM ها همچنین باید API های موجود را در سیستم اعلان حفظ کنند که این داده ها را در اختیار توسعه دهندگان برنامه قرار می دهد.
تغییرات در سیستمهای اعلان و مجوز بر اساس مدل انتخابی رفتار اطلاعرسانی کاربر است و در بخش دستورالعملهای اجرا توضیح داده شده است.
رفتار اعلانهای کاربر در مدل انتخابی
جدول زیر رفتار اعلانها را برای نسخههای مختلف برنامه در دستگاه دارای Android 13 نشان میدهد:
دستگاه در اندروید 13 | برنامه هایی که اندروید 13 یا بالاتر را هدف قرار می دهند | برنامه هایی که نسخه های پایین تر از اندروید 13 را هدف قرار می دهند |
---|---|---|
نصب جدید | اعلانها تا زمانی که برنامه از آنها خواسته نشود مسدود میشوند. برنامه ها زمان درخواست مجوز را کنترل می کنند. | اعلانها تا زمانی که سیستم عامل از آنها خواسته نشود مسدود میشوند. مجوز در اولین اجرای برنامه درخواست می شود. |
برنامه موجود (ارتقا) | اعلان ها تا زمانی که برنامه از آنها خواسته نشود مجاز است. مجوز موقت تا زمانی که برنامه در اولین اجرای واجد شرایط درخواست کند، اعطا می شود. | اعلان ها تا زمانی که سیستم عامل از آنها خواسته باشد مجاز است. مجوز موقت تا اولین اجرای برنامه اعطا می شود. |
دستورالعمل اجرا
برای اجرای مرجع، به سرویس اطلاع رسانی ، سرویس مجوز و سرویس خط مشی مراجعه کنید. برای پیادهسازی استثناها برای کنترلکنندههای مجوز پیشفرض، مجوزهای زمان اجرا را ببینید.
در حین اجرا، از دستورالعملهای زیر در مورد رفتار اعلان کاربر برای برنامههایی که Android 13 یا SDK پایینتر را هدف قرار میدهند، استفاده کنید:
- برنامههای تازه نصبشده در دستگاه Android 13 نباید بدون تأیید درخواست مجوز توسط کاربر، اعلان ارسال کنند.
- اگر برنامه نسخههای Android 13 و بالاتر را هدف قرار میدهد، اعلانها باید مسدود شوند تا زمانی که برنامه از آنها خواسته شود زیرا برنامه کنترل میکند چه زمانی و چه زمانی از کاربر اجازه بخواهد.
- اگر برنامه نسخههای پایینتر از Android 13 را هدف قرار میدهد، اعلانها باید مسدود شوند تا زمانی که سیستم عامل از آنها خواسته باشد. سیستم عامل باید درخواست مجوز را در اولین اجرای برنامه نشان دهد.
هر برنامهای که قبل از ارتقا به Android 13 در دستگاه وجود داشته است، یا هر برنامهای که از طریق پشتیبانگیری و بازیابی بازیابی شده است، باید تا اولین باری که کاربر فعالیتی را از آن برنامه راهاندازی کند، اجازه ارسال اعلانها را داشته باشد.
برای برنامههایی که SDK نسخههای Android 13 و بالاتر را هدف قرار میدهند، اگر کاربر قبلاً تنظیمات اعلان این برنامه را در سطح برنامه یا
NotificationChannel
سفارشی نکرده است، مجوز موقت را لغو کنید. سپس برنامهها باید قبل از ادامه ارسال اعلانها از کاربر اجازه بخواهند.اگر برنامه ارتقا یافته ای که اندروید 13 را هدف قرار می دهد در حال حاضر مجوز اعلان از طریق کمک هزینه ارتقا موقت را نداشته باشد و کاربر حداقل یک بار آن را راه اندازی کرده باشد، برنامه باید قبل از اینکه بتواند خدمات پیش زمینه دیگری را اجرا کند، یک درخواست مجوز اعلان نشان دهد.
برای برنامههایی که دارای SDK هدف نسخههای پایینتر از Android 13 هستند، پس از ایجاد حداقل یک
NotificationChannel
اولین راهاندازی فعالیت را متوقف کنید تا یک درخواست مجوز نشان دهد که آیا کاربر میخواهد اعلانهایی را از برنامه دریافت کند یا خیر.اگر کاربر قبلاً تنظیمات اعلان را در سطح برنامه یا
NotificationChannel
برای برنامه ای در دستگاه در حال ارتقا یا نسخه پشتیبان در حال بازیابی به دستگاه سفارشی کرده است، تنظیم سطح برنامه باید با پرچمFLAG_PERMISSION_USER_SET
به سیستم مجوز منتقل شود. هیچ درخواست مجوز اعلان دیگری نباید به کاربر نشان داده شود، مگر اینکه برنامه به طور خاص آن را بخواهد.
پشتیبانگیری و بازیابی باید بین دستگاه Android 13 و دستگاهی از نسخههای قدیمیتر سیستمعامل سازگار با عقب و جلو باشد. داده های پشتیبان تولید شده از یک دستگاه Android 13 باید در نسخه سیستم عامل قبلی بازیابی شوند و داده های پشتیبان از نسخه سیستم عامل قبلی باید در دستگاه Android 13 بازیابی شوند.
اعلانهای رسانه مرتبط با پخش مداوم رسانه باید از مجوز اعلان مستثنی شوند.
تأیید تغییرات در سیستم های اطلاع رسانی و مجوز
برای تأیید اعتبار پیاده سازی، آزمایش های زیر را اجرا کنید:
تست های واحد همانطور که در
PreferencesHelperTest
،NotificationManagerServiceTest
مشخص شده است.هر تست دستی که ارتقاء و پشتیبان گیری و بازیابی را آزمایش می کند.
هر آزمایش سیستم مجوز و اعلان CTS که اعلانها را ارسال میکند. برخی از این تستها در cts/tests/tests/permission/ ، NotificationManagerTest.java و cts/tests/tests/notificationlegacy/ قرار دارند.
اعلانها در Android 13 از یک مدل Opt-in استفاده میکنند که تغییری نسبت به نسخههای قبلی اندروید است که از یک مدل انصراف استفاده میکنند. در اندروید 13، همه برنامهها باید قبل از ارسال پیامهای اعلان از کاربران اجازه بگیرند. این مدل به کاهش وقفههای اعلانها کمک میکند، اضافه بار اطلاعات را به حداقل میرساند و به کاربران کمک میکند تا بر اساس آنچه برایشان مهم است، اعلانهایی را کنترل کنند. برای پشتیبانی از مدل Opt-in، OEM ها باید تغییراتی را در سیستم های مجوز اعلان و زمان اجرا اعمال کنند.
این صفحه توضیح میدهد که OEMها باید چه چیزهایی را برای پشتیبانی از این تغییر پیادهسازی کنند و چگونه پیادهسازی را تأیید کنند.
تغییرات را برای اعلانهای انتخابی اعمال کنید
با شروع Android 13، برنامهها باید قصد خود را برای ارسال اعلانها با درخواست مجوز زمان اجرا android.permission.POST_NOTIFICATION
از سیستم قبل از ارسال اعلانها اعلام کنند.
در اندروید 13 و بالاتر، تنظیماتی که تعیین میکند آیا برنامه میتواند اعلانها را برای کاربر ارسال کند، در سیستم مجوز ذخیره میشود. قبل از اندروید 13، این تنظیمات در سیستم اعلان ذخیره می شد. از این رو، OEM ها باید داده های اعلان موجود را در مورد اینکه آیا یک برنامه مجاز به ارسال اعلان است یا خیر، از سیستم اعلان به سیستم مجوز زمان اجرا منتقل کنند. OEM ها همچنین باید API های موجود را در سیستم اعلان حفظ کنند که این داده ها را در اختیار توسعه دهندگان برنامه قرار می دهد.
تغییرات در سیستمهای اعلان و مجوز بر اساس مدل انتخابی رفتار اطلاعرسانی کاربر است و در بخش دستورالعملهای اجرا توضیح داده شده است.
رفتار اعلانهای کاربر در مدل انتخابی
جدول زیر رفتار اعلانها را برای نسخههای مختلف برنامه در دستگاه دارای Android 13 نشان میدهد:
دستگاه در اندروید 13 | برنامه هایی که اندروید 13 یا بالاتر را هدف قرار می دهند | برنامه هایی که نسخه های پایین تر از اندروید 13 را هدف قرار می دهند |
---|---|---|
نصب جدید | اعلانها تا زمانی که برنامه از آنها خواسته نشود مسدود میشوند. برنامه ها زمان درخواست مجوز را کنترل می کنند. | اعلانها تا زمانی که سیستم عامل از آنها خواسته نشود مسدود میشوند. مجوز در اولین اجرای برنامه درخواست می شود. |
برنامه موجود (ارتقا) | اعلان ها تا زمانی که برنامه از آنها خواسته نشود مجاز است. مجوز موقت تا زمانی که برنامه در اولین اجرای واجد شرایط درخواست کند، اعطا می شود. | اعلان ها تا زمانی که سیستم عامل از آنها خواسته باشد مجاز است. مجوز موقت تا اولین اجرای برنامه اعطا می شود. |
دستورالعمل اجرا
برای اجرای مرجع، به سرویس اطلاع رسانی ، سرویس مجوز و سرویس خط مشی مراجعه کنید. برای پیادهسازی استثناها برای کنترلکنندههای مجوز پیشفرض، مجوزهای زمان اجرا را ببینید.
در حین اجرا، از دستورالعملهای زیر در مورد رفتار اعلان کاربر برای برنامههایی که Android 13 یا SDK پایینتر را هدف قرار میدهند، استفاده کنید:
- برنامههای تازه نصبشده در دستگاه Android 13 نباید بدون تأیید درخواست مجوز توسط کاربر، اعلان ارسال کنند.
- اگر برنامه نسخههای Android 13 و بالاتر را هدف قرار میدهد، اعلانها باید مسدود شوند تا زمانی که برنامه از آنها خواسته شود زیرا برنامه کنترل میکند چه زمانی و چه زمانی از کاربر اجازه بخواهد.
- اگر برنامه نسخههای پایینتر از Android 13 را هدف قرار میدهد، اعلانها باید مسدود شوند تا زمانی که سیستم عامل از آنها خواسته باشد. سیستم عامل باید درخواست مجوز را در اولین اجرای برنامه نشان دهد.
هر برنامهای که قبل از ارتقا به Android 13 در دستگاه وجود داشته است، یا هر برنامهای که از طریق پشتیبانگیری و بازیابی بازیابی شده است، باید تا اولین باری که کاربر فعالیتی را از آن برنامه راهاندازی کند، اجازه ارسال اعلانها را داشته باشد.
برای برنامههایی که SDK نسخههای Android 13 و بالاتر را هدف قرار میدهند، اگر کاربر قبلاً تنظیمات اعلان این برنامه را در سطح برنامه یا
NotificationChannel
سفارشی نکرده است، مجوز موقت را لغو کنید. سپس برنامهها باید قبل از ادامه ارسال اعلانها از کاربر اجازه بخواهند.اگر برنامه ارتقا یافته ای که اندروید 13 را هدف قرار می دهد در حال حاضر مجوز اعلان از طریق کمک هزینه ارتقا موقت را نداشته باشد و کاربر حداقل یک بار آن را راه اندازی کرده باشد، برنامه باید قبل از اینکه بتواند خدمات پیش زمینه دیگری را اجرا کند، یک درخواست مجوز اعلان نشان دهد.
برای برنامههایی که دارای SDK هدف نسخههای پایینتر از Android 13 هستند، پس از ایجاد حداقل یک
NotificationChannel
اولین راهاندازی فعالیت را متوقف کنید تا یک درخواست مجوز نشان دهد که آیا کاربر میخواهد اعلانهایی را از برنامه دریافت کند یا خیر.اگر کاربر قبلاً تنظیمات اعلان را در سطح برنامه یا
NotificationChannel
برای برنامه ای در دستگاه در حال ارتقا یا نسخه پشتیبان در حال بازیابی به دستگاه سفارشی کرده است، تنظیم سطح برنامه باید با پرچمFLAG_PERMISSION_USER_SET
به سیستم مجوز منتقل شود. هیچ درخواست مجوز اعلان دیگری نباید به کاربر نشان داده شود، مگر اینکه برنامه به طور خاص آن را بخواهد.
پشتیبانگیری و بازیابی باید بین دستگاه Android 13 و دستگاهی از نسخههای قدیمیتر سیستمعامل سازگار با عقب و جلو باشد. داده های پشتیبان تولید شده از یک دستگاه Android 13 باید در نسخه سیستم عامل قبلی بازیابی شوند و داده های پشتیبان از نسخه سیستم عامل قبلی باید در دستگاه Android 13 بازیابی شوند.
اعلانهای رسانه مرتبط با پخش مداوم رسانه باید از مجوز اعلان مستثنی شوند.
تأیید تغییرات در سیستم های اطلاع رسانی و مجوز
برای تأیید اعتبار پیاده سازی، آزمایش های زیر را اجرا کنید:
تست های واحد همانطور که در
PreferencesHelperTest
،NotificationManagerServiceTest
مشخص شده است.هر تست دستی که ارتقاء و پشتیبان گیری و بازیابی را آزمایش می کند.
هر آزمایش سیستم مجوز و اعلان CTS که اعلانها را ارسال میکند. برخی از این تستها در cts/tests/tests/permission/ ، NotificationManagerTest.java و cts/tests/tests/notificationlegacy/ قرار دارند.
اعلانها در Android 13 از یک مدل Opt-in استفاده میکنند که تغییری نسبت به نسخههای قبلی اندروید است که از یک مدل انصراف استفاده میکنند. در اندروید 13، همه برنامهها باید قبل از ارسال پیامهای اعلان از کاربران اجازه بگیرند. این مدل به کاهش وقفههای اعلانها کمک میکند، اضافه بار اطلاعات را به حداقل میرساند و به کاربران کمک میکند تا بر اساس آنچه برایشان مهم است، اعلانهایی را کنترل کنند. برای پشتیبانی از مدل Opt-in، OEM ها باید تغییراتی را در سیستم های مجوز اعلان و زمان اجرا اعمال کنند.
این صفحه توضیح میدهد که OEMها باید چه چیزهایی را برای پشتیبانی از این تغییر پیادهسازی کنند و چگونه پیادهسازی را تأیید کنند.
تغییرات را برای اعلانهای انتخابی اعمال کنید
با شروع Android 13، برنامهها باید قصد خود را برای ارسال اعلانها با درخواست مجوز زمان اجرا android.permission.POST_NOTIFICATION
از سیستم قبل از ارسال اعلانها اعلام کنند.
در اندروید 13 و بالاتر، تنظیماتی که تعیین میکند آیا برنامه میتواند اعلانها را برای کاربر ارسال کند، در سیستم مجوز ذخیره میشود. قبل از اندروید 13، این تنظیمات در سیستم اعلان ذخیره می شد. از این رو، OEM ها باید داده های اعلان موجود را در مورد اینکه آیا یک برنامه مجاز به ارسال اعلان است یا خیر، از سیستم اعلان به سیستم مجوز زمان اجرا منتقل کنند. OEM ها همچنین باید API های موجود را در سیستم اعلان حفظ کنند که این داده ها را در اختیار توسعه دهندگان برنامه قرار می دهد.
تغییرات در سیستمهای اعلان و مجوز بر اساس مدل انتخابی رفتار اطلاعرسانی کاربر است و در بخش دستورالعملهای اجرا توضیح داده شده است.
رفتار اعلانهای کاربر در مدل انتخابی
جدول زیر رفتار اعلانها را برای نسخههای مختلف برنامه در دستگاه دارای Android 13 نشان میدهد:
دستگاه در اندروید 13 | برنامه هایی که اندروید 13 یا بالاتر را هدف قرار می دهند | برنامه هایی که نسخه های پایین تر از اندروید 13 را هدف قرار می دهند |
---|---|---|
نصب جدید | اعلانها تا زمانی که برنامه از آنها خواسته نشود مسدود میشوند. برنامه ها زمان درخواست مجوز را کنترل می کنند. | اعلانها تا زمانی که سیستم عامل از آنها خواسته نشود مسدود میشوند. مجوز در اولین اجرای برنامه درخواست می شود. |
برنامه موجود (ارتقا) | اعلان ها تا زمانی که برنامه از آنها خواسته نشود مجاز است. مجوز موقت تا زمانی که برنامه در اولین اجرای واجد شرایط درخواست کند، اعطا می شود. | اعلان ها تا زمانی که سیستم عامل از آنها خواسته باشد مجاز است. مجوز موقت تا اولین اجرای برنامه اعطا می شود. |
دستورالعمل اجرا
برای اجرای مرجع، به سرویس اطلاع رسانی ، سرویس مجوز و سرویس خط مشی مراجعه کنید. برای پیادهسازی استثناها برای کنترلکنندههای مجوز پیشفرض، مجوزهای زمان اجرا را ببینید.
در حین اجرا، از دستورالعملهای زیر در مورد رفتار اعلان کاربر برای برنامههایی که Android 13 یا SDK پایینتر را هدف قرار میدهند، استفاده کنید:
- برنامههای تازه نصبشده در دستگاه Android 13 نباید بدون تأیید درخواست مجوز توسط کاربر، اعلان ارسال کنند.
- اگر برنامه نسخههای Android 13 و بالاتر را هدف قرار میدهد، اعلانها باید مسدود شوند تا زمانی که برنامه از آنها خواسته شود زیرا برنامه کنترل میکند چه زمانی و چه زمانی از کاربر اجازه بخواهد.
- اگر برنامه نسخههای پایینتر از Android 13 را هدف قرار میدهد، اعلانها باید مسدود شوند تا زمانی که سیستم عامل از آنها خواسته باشد. سیستم عامل باید درخواست مجوز را در اولین اجرای برنامه نشان دهد.
هر برنامهای که قبل از ارتقا به Android 13 در دستگاه وجود داشته است، یا هر برنامهای که از طریق پشتیبانگیری و بازیابی بازیابی شده است، باید تا اولین باری که کاربر فعالیتی را از آن برنامه راهاندازی کند، اجازه ارسال اعلانها را داشته باشد.
برای برنامههایی که SDK نسخههای Android 13 و بالاتر را هدف قرار میدهند، اگر کاربر قبلاً تنظیمات اعلان این برنامه را در سطح برنامه یا
NotificationChannel
سفارشی نکرده است، مجوز موقت را لغو کنید. سپس برنامهها باید قبل از ادامه ارسال اعلانها از کاربر اجازه بخواهند.اگر برنامه ارتقا یافته ای که اندروید 13 را هدف قرار می دهد در حال حاضر مجوز اعلان از طریق کمک هزینه ارتقا موقت را نداشته باشد و کاربر حداقل یک بار آن را راه اندازی کرده باشد، برنامه باید قبل از اینکه بتواند خدمات پیش زمینه دیگری را اجرا کند، یک درخواست مجوز اعلان نشان دهد.
برای برنامههایی که دارای SDK هدف نسخههای پایینتر از Android 13 هستند، پس از ایجاد حداقل یک
NotificationChannel
اولین راهاندازی فعالیت را متوقف کنید تا یک درخواست مجوز نشان دهد که آیا کاربر میخواهد اعلانهایی را از برنامه دریافت کند یا خیر.اگر کاربر قبلاً تنظیمات اعلان را در سطح برنامه یا
NotificationChannel
برای برنامه ای در دستگاه در حال ارتقا یا نسخه پشتیبان در حال بازیابی به دستگاه سفارشی کرده است، تنظیم سطح برنامه باید با پرچمFLAG_PERMISSION_USER_SET
به سیستم مجوز منتقل شود. هیچ درخواست مجوز اعلان دیگری نباید به کاربر نشان داده شود، مگر اینکه برنامه به طور خاص آن را بخواهد.
پشتیبانگیری و بازیابی باید بین دستگاه Android 13 و دستگاهی از نسخههای قدیمیتر سیستمعامل سازگار با عقب و جلو باشد. داده های پشتیبان تولید شده از یک دستگاه Android 13 باید در نسخه سیستم عامل قبلی بازیابی شوند و داده های پشتیبان از نسخه سیستم عامل قبلی باید در دستگاه Android 13 بازیابی شوند.
اعلانهای رسانه مرتبط با پخش مداوم رسانه باید از مجوز اعلان مستثنی شوند.
تأیید تغییرات در سیستم های اطلاع رسانی و مجوز
برای تأیید اعتبار پیاده سازی، آزمایش های زیر را اجرا کنید:
تست های واحد همانطور که در
PreferencesHelperTest
،NotificationManagerServiceTest
مشخص شده است.هر تست دستی که ارتقاء و پشتیبان گیری و بازیابی را آزمایش می کند.
هر آزمایش سیستم مجوز و اعلان CTS که اعلانها را ارسال میکند. برخی از این تستها در cts/tests/tests/permission/ ، NotificationManagerTest.java و cts/tests/tests/notificationlegacy/ قرار دارند.