نقش های اندروید

یک نقش، نامی منحصر به فرد در سیستم است که با مجوزها و امتیازات خاصی مرتبط است. برنامه‌ها می‌توانند از طریق API اندروید، به طور خاص با فراخوانی متدهایی در کلاس RoleManager ، درخواست کنند که نقش‌های خاصی را در اختیار داشته باشند.

برای نقش‌های موجود و الزامات مربوط به آنها، به لیست زیر مراجعه کنید:

نقش الزامات
ASSISTANT حداقل یکی از:
  • این برنامه دارای یک فعالیت است که با دریافت اطلاعات مربوط به زمینه کاربر هنگام درخواست کمک (به عنوان مثال، نام بسته برنامه فعلی در پیش‌زمینه و اطلاعات زمینه‌ای آن)، اقدامات کمکی را انجام می‌دهد.
  • این برنامه دارای یک سرویس تعامل صوتی همیشه فعال است که توسط مجوز android.permission.BIND_VOICE_INTERACTION کنترل می‌شود، که می‌تواند تشخیص صدا را انجام دهد و جلسات تعامل صوتی فعال را میزبانی کند. علاوه بر این، برنامه دارای یک پرچم صریح است که نشان می‌دهد سرویس قادر به انجام عمل کمکی است.
BROWSER همه از:
  • این برنامه دارای یک فعالیت (activity) است که برنامه‌ها می‌توانند از طریق درخواست‌های ضمنی (implicit intent) آن را فراخوانی کنند، که یک صفحه وب مربوط به آدرس http:// را نمایش می‌دهد.
  • این برنامه باید بتواند پیمایش بین لینک‌ها را مدیریت کند. یعنی اگر کاربر در حال مشاهده یک صفحه وب است و روی آدرس http:// در متن کلیک می‌کند، برنامه باید بتواند محتوای مربوط به لینک انتخاب شده را بدون دخالت اضافی کاربر نمایش دهد.
  • این برنامه باید بتواند اطلاعات موقعیت جغرافیایی فعلی دستگاه را در صورت درخواست و تأیید کاربر، به صفحات وب ارائه دهد.
DIALER همه از:
  • این برنامه دارای یک فعالیت (activity) است که برنامه‌ها می‌توانند از طریق درخواست‌های ضمنی (implicit intent) آن را فراخوانی کنند، که رابط کاربری در حین تماس را در حالی که دستگاه در حال تماس است، فراهم می‌کند.
  • این برنامه می‌تواند اهداف تماس ورودی را مدیریت کند، اطلاعات مربوط به تماس (مثلاً شماره تلفن تماس‌گیرنده) را به کاربر نمایش دهد و به کاربر اجازه دهد به تماس پاسخ دهد یا آن را رد کند.
  • این برنامه به کاربر امکان می‌دهد تماس‌ها را شروع کند و سابقه تماس‌ها را در دستگاه خود مشاهده کند.
SMS همه از:
  • این برنامه تمام الزامات مربوط به برنامه‌های پیامکی را برآورده می‌کند.
  • این برنامه دارای یک فعالیت (activity) است که برنامه‌ها می‌توانند از طریق درخواست‌های ضمنی (implicit intent) آن را فراخوانی کنند، که می‌تواند پیامی را به یک شماره تلفن ارسال کند.
  • این برنامه دارای سرویسی است که توسط مجوز android.permission.SEND_RESPOND_VIA_MESSAGE مسدود شده و توسط intent های ضمنی قابل فراخوانی است، که می‌تواند پیام‌های دریافتی از برنامه تلفن را هنگامی که کاربر در طول تماس ورودی تصمیم به پاسخ از طریق پیام می‌گیرد، ارسال کند. این برنامه می‌تواند پیام‌ها را از طریق سیستم پیام‌رسانی خود ارسال کند.
  • این برنامه دو گیرنده پخش دارد، یکی با مجوز android.permission.BROADCAST_SMS و دیگری با مجوز android.permission.BROADCAST_WAP_PUSH که می‌توانند به ترتیب به پیام‌های SMS و MMS مبتنی بر متن که به دستگاه ارسال می‌شوند گوش دهند. سپس برنامه مسئول نوشتن پیام‌ها برای ارائه‌دهنده SMS و اطلاع‌رسانی به کاربران است.
EMERGENCY همه از:
  • برنامه یک برنامه سیستمی است.
  • این برنامه دارای فعالیتی است که اطلاعات اضطراری کاربر را ارائه می‌دهد. هر کسی می‌تواند از طریق دکمه اضطراری در فعالیت شماره‌گیر اضطراری به این صفحه برود.
HOME این برنامه دارای فعالیتی است که می‌تواند صفحه اصلی را هنگامی که کاربر دکمه خانه را فشار می‌دهد، اجرا کند. صفحه اصلی باید آیکون‌های برنامه، ویجت‌ها را نشان دهد و از پیمایش بر اساس دکمه‌ها یا حرکات پشتیبانی کند (به عنوان مثال، کشیدن انگشت به بالا برای دیدن همه برنامه‌ها).
CALL_REDIRECTION این برنامه دارای سرویسی است که توسط مجوز android.permission.BIND_CALL_REDIRECTION_SERVICE مسدود شده است، که چارچوب مخابراتی می‌تواند به آن متصل شود. این سرویس شماره تلفن خروجی را از چارچوب مخابراتی دریافت می‌کند و یکی از اقدامات زیر را انجام می‌دهد:
  • اجازه دهید تماس به همین صورت برقرار شود.
  • شماره خروجی را به مسیردهی از طریق یک شماره پروکسی تغییر دهید.
  • تماس را لغو کنید.
CALL_SCREENING این برنامه دارای سرویسی است که توسط مجوز android.permission.BIND_SCREENING_SERVICE مسدود شده است، که دو عملکرد را انجام می‌دهد:
  • مسدود کردن و غربالگری تماس: این سرویس می‌تواند انتخاب کند که کدام تماس‌ها باید به برنامه شماره‌گیر روی تلفن ارسال شوند (و احتمالاً با توجه به DND یا میزان صدا زنگ بخورند) و کدام‌ها باید بی‌صدا به صندوق صوتی ارسال شوند.
  • شناسایی تماس: این سرویس می‌تواند اطلاعات مربوط به یک تماس را از طریق رابط کاربری شناسایی و نمایش دهد.
SUPERVISION همه از:
  • این برنامه یک برنامه سیستمی یا یک سرویس از پیش نصب شده است.
  • فقط تولیدکنندگان اصلی تجهیزات (OEM) می‌توانند این نقش را به برنامه اعطا کنند.
  • تنها هدف این برنامه، فعال کردن کنترل‌هایی برای والدین یا قیم قانونی کاربر جهت مدیریت دستگاه است.
  • برنامه باید یک جزء رابط کاربری روی دستگاه ارائه دهد که کاربر مجاز بتواند از آن برای غیرفعال کردن نقش نظارتی استفاده کند.
SYSTEM_GALLERY همه از:
  • برنامه یک برنامه سیستمی است.
  • فقط تولیدکنندگان اصلی تجهیزات (OEM) می‌توانند این نقش را به برنامه اعطا کنند.
  • این برنامه یک رابط کاربری برای کاربران فراهم می‌کند تا ویدیوها و تصاویر خود را ذخیره، سازماندهی و نمایش دهند.
SYSTEM_AUTOMOTIVE_CLUSTER همه از:
  • این برنامه یک برنامه سیستمی در Automotive است.
  • فقط تولیدکنندگان اصلی تجهیزات (OEM) می‌توانند این نقش را به برنامه اعطا کنند.
  • این برنامه قابلیتی را برای نمایشگر خوشه‌ای خودرو (معمولاً در مجاورت فرمان) فراهم می‌کند تا کاربران بتوانند به تماس‌های تلفنی پاسخ دهند و به لیست مخاطبین و گزارش‌های تماس دسترسی پیدا کنند.
COMPANION_DEVICE_WATCH این برنامه می‌تواند درخواست‌هایی برای ارتباط با دستگاه ساعت و مدیریت آن ارسال کند (با استفاده از API ارائه شده توسط کلاس CompanionDeviceManager ). هنگامی که ساعت و برنامه از طریق رابط کاربری ارائه شده توسط برنامه به هم متصل می‌شوند، کاربران می‌توانند ساعت خود را از طریق برنامه مدیریت کنند، از جمله همگام‌سازی مخاطبین و تقویم و مدیریت اعلان‌ها و تماس‌های تلفنی.
SYSTEM_AUTOMOTIVE_PROJECTION همه از:
  • برنامه یک برنامه سیستمی است.
  • فقط تولیدکنندگان اصلی تجهیزات (OEM) می‌توانند این نقش را به برنامه اعطا کنند.
  • این برنامه امکان نمایش صفحه نمایش تلفن همراه را روی نمایشگر داخل خودرو فراهم می‌کند. این برنامه به رانندگان اجازه می‌دهد تا با استفاده از مکانیسم‌های ورودی در خودرو، از جمله لمس، کنترل‌های روی فرمان و دستورات صوتی، به برنامه‌های تلفن‌های اندروید از جمله موسیقی، ناوبری، تماس‌های تلفنی و جستجو دسترسی داشته باشند و آنها را کنترل کنند.
SYSTEM_SHELL همه از:
  • این برنامه یک برنامه سیستمی است که شناسه کاربری Process.SHELL_UID به آن اختصاص داده شده است.
  • فقط تولیدکنندگان اصلی تجهیزات (OEM) می‌توانند این نقش را به برنامه اعطا کنند.
  • این برنامه رابطی را ارائه می‌دهد که در سطح خط فرمان کار می‌کند تا کاربران بتوانند با سیستم عامل اندروید تعامل داشته باشند. به عنوان مثال، نمایش محتویات یک پوشه یا اجرای برنامه‌ها. دستورات Shell می‌توانند به صورت برنامه‌نویسی شده توسط برنامه‌ها (با توجه به مجوزهای لازم) یا از ابزار ADB اجرا شوند.
SYSTEM_CONTACTS همه از:
  • برنامه یک برنامه سیستمی است.
  • فقط تولیدکنندگان اصلی تجهیزات (OEM) می‌توانند این نقش را به برنامه اعطا کنند.
  • این برنامه یک رابط کاربری برای کاربران فراهم می‌کند تا مخاطبین خود را مدیریت کنند (برای مثال، مشاهده، اشتراک‌گذاری، اضافه کردن، حذف یا جستجوی یک مخاطب). برنامه، ارائه‌دهنده مخاطبین را هنگامی که کاربر مخاطبین خود را از برنامه به‌روزرسانی می‌کند، به‌روزرسانی می‌کند. کاربران همچنین می‌توانند از طریق برنامه با مخاطبین خود تماس بگیرند، ایمیل ارسال کنند یا پیامک ارسال کنند.
SYSTEM_SPEECH_RECOGNIZER همه از:
  • برنامه یک برنامه سیستمی است.
  • فقط تولیدکنندگان اصلی تجهیزات (OEM) می‌توانند این نقش را به برنامه اعطا کنند.
  • این برنامه خدماتی را ارائه می‌دهد که می‌تواند تشخیص گفتار را انجام دهد.
  • وقتی برنامه، استریم‌های زنده میکروفون را از برنامه دیگری برای تشخیص گفتار دریافت می‌کند، به درستی میزان استفاده از میکروفون را به برنامه تماس گیرنده نسبت می‌دهد و آمار عملکرد برنامه را بر اساس آن به‌روزرسانی می‌کند.
SYSTEM_WIFI_COEX_MANAGER همه از:
  • برنامه یک برنامه سیستمی است.
  • فقط تولیدکنندگان اصلی تجهیزات (OEM) می‌توانند این نقش را به برنامه اعطا کنند.
  • این برنامه دارای سرویسی است که به صورت پویا لیستی از کانال‌های وای‌فای را که دستگاه باید به دلیل تداخل سلولی از استفاده از آنها اجتناب کند، تنظیم می‌کند.
SYSTEM_WELLBEING همه از:
  • برنامه یک برنامه سیستمی است.
  • فقط تولیدکنندگان اصلی تجهیزات (OEM) می‌توانند این نقش را به برنامه اعطا کنند.
  • این برنامه باید قابلیتی را برای کاربران فراهم کند تا حواس‌پرتی را کاهش دهند و آماری در مورد نحوه استفاده از دستگاه خود (مثلاً مدت زمان استفاده از صفحه نمایش در هفته) به کاربران ارائه دهد.
SYSTEM_TELEVISION_NOTIFICATION_HANDLER همه از:
  • برنامه یک برنامه سیستمی است.
  • فقط تولیدکنندگان اصلی تجهیزات (OEM) می‌توانند این نقش را به برنامه اعطا کنند.
  • برنامه باید اعلان‌های هشدار را به کاربران دستگاه‌های تلویزیون نشان دهد. همچنین باید اعلان‌های فعال فعلی را هنگام ارسال intent مربوط به android.app.action.TOGGLE_NOTIFICATION_HANDLER_PANEL (از SystemUI) نمایش دهد.
SYSTEM_COMPANION_DEVICE_PROVIDER همه از:
  • برنامه یک برنامه سیستمی است.
  • فقط تولیدکنندگان اصلی تجهیزات (OEM) می‌توانند این نقش را به برنامه اعطا کنند.
  • این برنامه باید بتواند دستگاه‌های جانبی مجاور خود را شناسایی کند. باید رابط کاربری داشته باشد که کاربر بتواند تأیید کند که یک دستگاه جانبی مشخص باید با یک برنامه مرتبط شده و توسط آن مدیریت شود. هنگامی که کاربر تأیید می‌کند، برنامه مدیریت، مجوز دسترسی به دستگاه جانبی (مثلاً نام، آدرس، کلاس و وضعیت اتصال آن) را به برنامه مرتبط اعطا می‌کند و می‌تواند فرآیند اتصال را آغاز کند.
SYSTEM_DOCUMENT_MANAGER همه از:
  • برنامه یک برنامه سیستمی است.
  • فقط تولیدکنندگان اصلی تجهیزات (OEM) می‌توانند این نقش را به برنامه اعطا کنند.
  • این برنامه دارای یک فعالیت است که به کاربران امکان دسترسی به اسناد موجود و ایجاد اسناد جدید در دستگاه را می‌دهد.
  • این برنامه باید تمام الزامات ذکر شده در بخش ۲.۲.۳ از راهنمای توسعه‌دهندگان اندروید (Android CDD) تحت عنوان [۳.۲.۳.۱/H-0-1] را برآورده کند.
SYSTEM_ACTIVITY_RECOGNIZER همه از:
  • برنامه یک برنامه سیستمی است.
  • این برنامه دارای سرویسی است که توسط android.permission.ACTIVITY_RECOGNITION مسدود شده است، که می‌تواند تشخیص فعالیت (مثلاً دویدن یا دوچرخه‌سواری) را انجام دهد.
SYSTEM_UI همه از:
  • برنامه یک برنامه سیستمی است.
  • فقط تولیدکنندگان اصلی تجهیزات (OEM) می‌توانند این نقش را به برنامه اعطا کنند.
  • این برنامه دارای رابط کاربری برای تعامل کاربران با تلفن‌هایشان است. برای مثال، صفحه اصلی تلفن، ناوبری، برنامه‌های اخیر، تنظیمات سریع، نوار اعلان‌ها، صفحه قفل، کنترل صدا.
SYSTEM_TELEVISION_REMOTE_SERVICE همه از:
  • این برنامه یک برنامه سیستمی در اندروید تی‌وی است.
  • فقط تولیدکنندگان اصلی تجهیزات (OEM) می‌توانند این نقش را به برنامه اعطا کنند.
  • این برنامه دارای سرویسی است که می‌تواند با دستگاه HID کنترل از راه دور تلویزیون (برای مثال، از طریق BLE) ارتباط برقرار کند، رویدادها (مثلاً کلیک دکمه‌ها) را تزریق کند و داده‌های دیگری (مثلاً جریان صوتی از میکروفون تعبیه شده در کنترل از راه دور) را به پلتفرم ارسال کند.
SYSTEM_UI_INTELLIGENCE همه از:
  • یک سرویس از پیش نصب شده است که از طریق APIهای چارچوب (APIهای عمومی یا سیستمی)، یک پردازنده هوشمند روی دستگاه برای ویژگی‌های رابط کاربری سیستم (مثلاً پیش‌بینی و نمایش برنامه‌های بعدی برای کاربران) فراهم می‌کند.
  • این سرویس باید تمام الزامات ذکر شده در بخش ۹.۸.۶ Content Capture از Android CDD را برآورده کند.
  • این سرویس نمی‌تواند مجوز android.permission.INTERNET را داشته باشد. در عوض، باید از طریق APIهای تعریف‌شده در یک پروژه متن‌باز به اینترنت دسترسی داشته باشد.
  • این سرویس نمی‌تواند به برنامه‌ها متصل شود، به جز برنامه‌های سیستمی زیر: بلوتوث، مخاطبین، رسانه‌ها، تلفن، رابط کاربری سیستم و اجزایی که APIهای اینترنتی را ارائه می‌دهند. هر اتصال مجاز باید به صراحت از طریق پیکربندی <allow-association> در پیکربندی سیستم تنظیم شود.
  • این سرویس نمی‌تواند داده‌ها را با برنامه‌ها به اشتراک بگذارد، مگر اینکه کاربر مستقیماً اقدامی انجام دهد (برای مثال، کاربر هر بار که داده‌ها به اشتراک گذاشته می‌شوند، صریحاً دکمه‌ای را فشار دهد).
SYSTEM_AMBIENT_AUDIO_INTELLIGENCE همه از:
  • مشابه شرایط SYSTEM_UI_INTELLIGENCE است، با این تفاوت که سرویس از پیش نصب شده، یک پردازنده هوشمند روی دستگاه برای صدای محیط (مثلاً تشخیص آهنگ‌های در حال پخش در نزدیکی دستگاه) ارائه می‌دهد.
SYSTEM_AUDIO_INTELLIGENCE همه از:
  • مشابه شرایط SYSTEM_UI_INTELLIGENCE است، با این تفاوت که سرویس از پیش نصب شده یک پردازنده هوشمند روی دستگاه برای صدا (به عنوان مثال، زیرنویس ویدیوها، پادکست‌ها، تماس‌های تلفنی، تماس‌های ویدیویی و پیام‌های صوتی) ارائه می‌دهد.
SYSTEM_NOTIFICATION_INTELLIGENCE همه از:
  • مشابه شرایط SYSTEM_UI_INTELLIGENCE است، با این تفاوت که سرویس از پیش نصب شده یک پردازنده هوشمند روی دستگاه برای اعلان‌ها ارائه می‌دهد (برای مثال، پیشنهاد پاسخ‌ها و اقدامات برای اعلان‌های پیام).
SYSTEM_TEXT_INTELLIGENCE همه از:
  • مشابه شرایط SYSTEM_UI_INTELLIGENCE است، با این تفاوت که سرویس از پیش نصب شده یک پردازنده هوشمند روی دستگاه برای متن ارائه می‌دهد (برای مثال، ترجمه زنده یا تکمیل خودکار را فراهم می‌کند).
SYSTEM_VISUAL_INTELLIGENCE همه از:
  • مشابه شرایط SYSTEM_UI_INTELLIGENCE است، با این تفاوت که سرویس از پیش نصب شده، یک پردازنده هوشمند روی دستگاه برای ویژگی‌های بصری ارائه می‌دهد که شامل تجزیه و تحلیل داده‌های دوربین می‌شود. به عنوان مثال، روشن نگه داشتن صفحه نمایش تلفن در حالی که کاربر به آن نگاه می‌کند یا تعیین جهت ایده‌آل صفحه نمایش بر اساس جهت چهره کاربر از دوربین جلویی دستگاه.
COMPANION_DEVICE_APP_STREAMING همه از:
  • برنامه یک برنامه سیستمی است.
  • فقط تولیدکنندگان اصلی تجهیزات (OEM) می‌توانند این نقش را به برنامه اعطا کنند.
  • موارد استفاده مجاز:
    • پخش، پخش یا آینه‌سازی برنامه‌ها، که امکان پخش، پخش یا آینه‌سازی را از یک دستگاه مبتنی بر اندروید مانند تلفن همراه یا تبلت به رایانه رومیزی یا لپ‌تاپ فراهم می‌کنند.
  • هنگام برقراری اتصال اولیه از دستگاه A به دستگاه B:
    • جفت‌سازی باید توسط یک کد یکبار مصرف که روی دستگاه مبدا (A) نمایش داده می‌شود و در دستگاه متصل (B) وارد می‌شود، مجاز باشد. از طرف دیگر، اگر هر دو دستگاه حداقل یک حساب کاربری منطبق در Android AccountManager خود داشته باشند، کاربر می‌تواند با وارد کردن رمز عبور حساب کاربری در دستگاه متصل (B) جفت‌سازی را تأیید کند.
    • هر دو دستگاه باید در حین جفت شدن در نزدیکی یکدیگر باشند.
  • هر دو دستگاه باید هنگام پخش جریانی در نزدیکی یکدیگر باشند.
  • این برنامه می‌تواند کانال‌های ارتباطی با دستگاه‌های متصل ایجاد و مدیریت کند تا دستگاه‌ها بتوانند داده‌ها را تبادل کنند. برنامه و دستگاه‌های متصل باید برای ایجاد این کانال‌های ارتباطی، یکدیگر را با موفقیت احراز هویت کنند (به عنوان مثال، با اثبات دانش خود از کلیدهای مشترک). کانال‌های ارتباطی باید دارای رمزگذاری سرتاسری باشند.
  • این برنامه می‌تواند اعلان‌هایی را از دستگاه مبدا (A) به دستگاه متصل (B) ارسال کند تا کاربر بتواند در مورد اعلان‌های دستگاه متصل (B) اقدامی انجام دهد.
  • قادر به استریم کردن ابرداده‌های لازم برای استریم برنامه به دستگاه متصل (B)، مانند لیست برنامه‌های موجود در دستگاه منبع (A).
  • پس از اینکه کاربر با رضایت صریح (چه در دستگاه منبع (A) و چه در دستگاه متصل (B)) ترجیح خود را برای انجام این کار اعلام کرد، بتواند برنامه‌ها را از دستگاه منبع (A) به دستگاه متصل (B) پخش کند.
  • قادر به پخش مجدد (تزریق) رویدادهایی که در یک برنامه پخش شده در دستگاه متصل (B) رخ می‌دهند، در دستگاه منبع (A) باشند. به عنوان مثال، پخش مجدد یک رویداد لمسی در دستگاه متصل (B) در همان مختصات دستگاه منبع (A)، یا پخش مجدد یک رویداد ورودی که در دستگاه متصل (B) رخ داده است با همان معانی ورودی در دستگاه منبع (A).
  • این برنامه می‌تواند در حالی که یک برنامه در حال پخش از میکروفون استفاده می‌کند، جریان میکروفون دستگاه منبع را با جریان میکروفون دستگاه متصل جایگزین کند.
  • این برنامه صدا را از دستگاه منبع (A) ضبط کرده و آن را به دستگاه متصل (B) منتقل می‌کند.
  • توصیه می‌شود دسترسی به تنظیمات، برنامه‌ها و فروشگاه‌های برنامه را از دستگاه متصل (B) مسدود کنید.
  • از اندروید ۱۶ به بعد ، باید از اسکرین‌شات گرفتن و خواندن صفحه از محتوای حساس، مانند پنجره‌ها و سطوح امن ، در دستگاه متصل (B) جلوگیری شود.
  • باید صحت ساختار سیستم عامل دستگاه متصل را تأیید کند (برای مثال، با استفاده از گواهی دستگاه مانند VerifiedBootState ).
  • فقط برنامه‌هایی را پخش کنید که فقط یک حساب کاربری منطبق در رجیستری حساب کاربری روی دستگاه (مثلاً کلاس AccountManager در اندروید) در هر دو دستگاه وجود داشته باشد. اگر اینگونه نباشد، پخش باید با یک کد یکبار مصرف که در دستگاه مبدا (A) نشان داده شده و در دستگاه متصل (B) وارد شده است، مجاز شود. توجه داشته باشید که در مورد دستگاه‌هایی که از چند کاربر (و نه چند حساب کاربری) با همان جداسازی داده‌های قابل اعتماد مانند چند کاربره اندروید پشتیبانی می‌کنند، یک کاربر به عنوان یک دستگاه حساب می‌شود.
  • در صورت منقضی شدن یا ابطال احراز هویت حساب کاربری در دستگاه متصل (B)، باید فوراً پخش جریانی را متوقف کرده و ارتباط خود را با دستگاه متصل (B) قطع کنید.
  • باید پس از اتمام زمان بیکاری دستگاه متصل (B) که محتوای نمایش داده شده روی آن قابل مشاهده است، پخش جریانی را متوقف کرده و از دستگاه متصل (B) جدا شوید. می‌توانید صفحه دستگاه متصل را برای مواردی مانند WakeLock که صفحه دستگاه اندروید را روشن نگه می‌دارند، روشن نگه دارید. باید زمان بیکاری وجود داشته باشد. اگر دستگاه متصل (B) به خودی خود زمان بیکاری ندارد، باید از حداکثر ۵ دقیقه زمان بیکاری استفاده شود.
  • اگر دستگاه مبدا (A) از فاکتور دانش قفل صفحه (LSKF) استفاده کند، هنگامی که صفحه قفل است، برنامه نباید برنامه‌ها را به دستگاه متصل (B) استریم کند، مگر اینکه دستگاه متصل (B) دارای صفحه قفل باشد و قفل آن باز شده باشد.
  • اگر دستگاه مبدا (A) توسط یک مدیر مدیریت می‌شود، برنامه باید سیاست‌های تعیین‌شده توسط مدیر در مورد فعال یا غیرفعال کردن پخش به دستگاه‌های مجاور را رعایت کند (برای مثال، با استفاده از تنظیمات DevicePolicyManager در اندروید).
  • باید اطمینان حاصل شود که نمایشگرهای راه دور و تمام منابع رویدادهای ورودی از راه دور، از دیدگاه کاربر، متعلق به یک دستگاه منطقی (مثلاً یک نمایشگر راه دور و یک صفحه کلید متصل) هستند و رویدادها بر این اساس مسیریابی می‌شوند.
  • کاربر باید بتواند پخش جریانی از دستگاه مبدا (A) را متوقف کند، برای مثال، با استفاده از یک دکمه در یک اعلان دائمی. اگر دستگاه مبدا (A) قفل صفحه داشته باشد، این رفتار توسط صفحه قفل مسدود می‌شود. باید این قابلیت دائمی در دستگاه مبدا (A) که همیشه قابل مشاهده و بالای صفحه است، نمایش داده شود.
  • باید هنگام پخش در دستگاه دیگر، یک نمایش اطلاع‌رسانی (A) روی دستگاه مبدا نمایش داده شود، مانند یک آیکون در نوار وضعیت یا یک اعلان مداوم.
DEVICE_POLICY_MANAGEMENT همه از:
  • فقط تولیدکنندگان اصلی تجهیزات (OEM) می‌توانند این نقش را به برنامه اعطا کنند. برنامه‌ها نمی‌توانند این نقش را درخواست کنند، زیرا قرار است این نقش به صورت پیش‌فرض به نام بسته‌ای که توسط تولیدکننده اصلی تجهیزات (OEM) هنگام ارسال دستگاه تعریف شده است، اعطا شود.
  • برنامه باید بتواند یک پروفایل مدیریت‌شده (مالک پروفایل) یا یک دستگاه مدیریت‌شده (مالک دستگاه) ارائه دهد، از جمله دانلود و نصب کلاینت سیاست دستگاه مناسب به عنوان مالک دستگاه/پروفایل در صورت لزوم.
  • این برنامه می‌تواند به صورت اختیاری و پویا منابعی مانند رشته‌ها و فایل‌های قابل ترسیم مورد استفاده برای مدیریت سیاست‌های دستگاه را به‌روزرسانی کند.
  • این برنامه می‌تواند یک برنامه سیستمی از پیش نصب شده باشد یا قبل از تهیه، دانلود و نصب شود.
  • برای موارد تأمین مالک پروفایل، وقتی برنامه‌ی دارنده نقش روی یک کاربر اندروید مشخص نصب می‌شود، باید روی تمام پروفایل‌های قابل اجرا برای آن کاربر نصب شود.
SYSTEM_APP_PROTECTION_SERVICE همه از:
  • برنامه یک برنامه سیستمی است.
  • تنها هدف این برنامه شناسایی برنامه‌های بالقوه مضر (برنامه‌هایی که می‌توانند کاربران، داده‌های کاربر یا دستگاه‌ها را در معرض خطر قرار دهند مانند تروجان‌ها، فیشینگ و برنامه‌های جاسوسی) یا نرم‌افزارهای ناخواسته موبایل است.
  • این برنامه باید تمام الزامات ذکر شده در بخش ۹.۸.۶ از بخش توسعه‌دهندگان اندروید (CDD) در سطح سیستم‌عامل و داده‌های محیطی را برآورده کند.
  • این برنامه نباید مجوز android.permission.INTERNET را به صورت عادی اعلام کند. در عوض باید از طریق API های تعریف شده در یک پروژه متن باز به اینترنت دسترسی داشته باشد.
  • این برنامه نباید به برنامه‌های دیگر متصل شود، به جز برنامه‌های سیستمی زیر: کنترل‌کننده مجوز، و اجزایی که APIهای تلفن و اینترنت را ارائه می‌دهند. هر اتصال مجاز باید به صراحت از طریق پیکربندی <allow-association> در پیکربندی سیستم تنظیم شود.
  • برنامه نباید داده‌ها را با برنامه‌ها به اشتراک بگذارد، مگر اینکه کاربر مستقیماً اقدامی انجام دهد (برای مثال، کاربر هر بار که داده‌ها به اشتراک گذاشته می‌شوند، صریحاً دکمه‌ای را فشار دهد).
SYSTEM_AUTOMOTIVE_CALENDAR_SYNC_MANAGER همه از:
  • برنامه یک برنامه سیستمی است.
  • فقط تولیدکنندگان اصلی تجهیزات (OEM) می‌توانند این نقش را به برنامه اعطا کنند.
  • برنامه باید داده‌های تقویم را از تلفن iOS یا اندروید کاربر به دستگاه Android Auto منتقل کند. دستگاه Android Auto باید این داده‌های تقویم را در calendar provider ذخیره کند.
  • برنامه باید یک جزء رابط کاربری در تلفن ارائه دهد که کاربر بتواند از آن برای روشن کردن همگام‌سازی تقویم و انتخاب تقویم‌ها برای همگام‌سازی استفاده کند. برنامه باید یک جزء رابط کاربری در تلفن ارائه دهد که کاربر بتواند از آن برای خاموش کردن همگام‌سازی تقویم استفاده کند.
  • این برنامه باید بدون اتصال به اینترنت کار کند. برای مثال، با استفاده از اتصالات مستقیم سیمی یا بی‌سیم.
AUTOMOTIVE_NAVIGATION همه از:
  • این برنامه دارای یک فعالیت (activity) است که برنامه‌ها می‌توانند از طریق درخواست‌های ضمنی (implicit intent) آن را فراخوانی کنند، که مکان فعلی و محیط اطراف کاربر را نشان می‌دهد.
  • این برنامه دارای یک فعالیت (activity) است که برنامه‌ها می‌توانند از طریق درخواست‌های ضمنی (implicit intent) آن را فراخوانی کنند، که به کاربر اجازه می‌دهد تا به یک موقعیت جغرافیایی مشخص شده هدایت شود.
  • این برنامه دارای یک فعالیت (activity) است که وقتی برنامه روی حالت ناوبری (navigation focus) قرار می‌گیرد، روی خوشه ابزار (instrument cluster) اجرا می‌شود. این فعالیت باید مکان فعلی کاربر و محیط اطراف را نشان دهد و به او اجازه دهد تا به یک موقعیت جغرافیایی مشخص شده هدایت شود.
COMPANION_DEVICE_COMPUTER همه از:
  • برنامه یک برنامه سیستمی است.
  • فقط تولیدکنندگان اصلی تجهیزات (OEM) می‌توانند این نقش را به برنامه اعطا کنند.
  • به کاربران این امکان را می‌دهد که اعلان‌ها را روی گوشی خود روی رایانه متصل به آن منعکس کنند و به عکس‌ها و رسانه‌ها دسترسی داشته باشند.
SYSTEM_SETTINGS_INTELLIGENCE حداقل یکی از:
  • برنامه یک برنامه سیستمی است.
  • فقط تولیدکنندگان اصلی تجهیزات (OEM) می‌توانند این نقش را به برنامه اعطا کنند.
  • دارای سرویسی است که ویژگی‌های هوشمندی مانند پیشنهادها و جستجو را برای برنامه تنظیمات ارائه می‌دهد.
NOTES همه از:
  • این برنامه دارای یک activity است که برنامه‌ها می‌توانند از طریق درخواست‌های ضمنی intent آن را فراخوانی کنند. این activity به کاربر اجازه می‌دهد صرف نظر از اینکه صفحه قفل شده یا باز است، یک یادداشت ایجاد کند.
  • برنامه باید با داشتن یک اکتیویتی که دارای یک فیلتر intent برای android.intent.action.CREATE_NOTE با دسته بندی android.intent.category.DEFAULT است، از این قابلیت پشتیبانی کند. این اکتیویتی همچنین باید به طور مناسب intent extra android.intent.extra.USE_STYLUS_MODE را مدیریت کند.
  • هر دو ویژگی manifest showWhenLocked و turnScreenOn باید روی true تنظیم شده باشند.
COMPANION_DEVICE_GLASSES این برنامه می‌تواند درخواست‌هایی برای ارتباط با دستگاه عینک و مدیریت آن ارسال کند (با استفاده از API ارائه شده توسط کلاس CompanionDeviceManager ). هنگامی که دستگاه عینک و برنامه با استفاده از رابط کاربری ارائه شده توسط CDM به هم متصل می‌شوند، کاربران می‌توانند با دادن دسترسی به مخاطبین و مجوز مدیریت اعلان‌ها و تماس‌های تلفنی، دستگاه عینک خود را مدیریت کنند.
COMPANION_DEVICE_NEARBY_DEVICE_STREAMING همه از:
  • برنامه یک برنامه سیستمی است.
  • فقط تولیدکنندگان اصلی تجهیزات (OEM) می‌توانند این نقش را به برنامه اعطا کنند.
  • موارد استفاده مجاز:
    • پخش برنامه از یک دستگاه اندروید مانند تلفن همراه یا تبلت به وسیله نقلیه.
    • پخش برنامه از یک دستگاه مبتنی بر اندروید مانند تلفن همراه یا تبلت به یک دستگاه XR.
  • هنگام برقراری اتصال اولیه از دستگاه A به دستگاه B:
    • جفت‌سازی باید توسط یک کد یکبار مصرف که روی دستگاه مبدا (A) نمایش داده می‌شود و در دستگاه متصل (B) وارد می‌شود، مجاز باشد. از طرف دیگر، اگر هر دو دستگاه حداقل یک حساب کاربری منطبق در Android AccountManager خود داشته باشند، کاربر می‌تواند با وارد کردن رمز عبور حساب کاربری در دستگاه متصل (B) جفت‌سازی را تأیید کند.
    • هر دو دستگاه باید در حین جفت شدن در نزدیکی یکدیگر باشند.
  • هر دو دستگاه باید هنگام پخش جریانی در نزدیکی یکدیگر باشند.
  • این برنامه می‌تواند کانال‌های ارتباطی با دستگاه‌های متصل ایجاد و مدیریت کند تا دستگاه‌ها بتوانند داده‌ها را تبادل کنند. برنامه و دستگاه‌های متصل باید برای ایجاد این کانال‌های ارتباطی، یکدیگر را با موفقیت احراز هویت کنند (به عنوان مثال، با اثبات دانش خود از کلیدهای مشترک). کانال‌های ارتباطی باید دارای رمزگذاری سرتاسری باشند.
  • این برنامه می‌تواند اعلان‌هایی را از دستگاه مبدا (A) به دستگاه متصل (B) ارسال کند تا کاربر بتواند در مورد اعلان‌های دستگاه متصل (B) اقدامی انجام دهد.
  • قادر به استریم کردن ابرداده‌های لازم برای استریم برنامه به دستگاه متصل (B)، مانند لیست برنامه‌های موجود در دستگاه منبع (A).
  • پس از اینکه کاربر با رضایت صریح (چه در دستگاه منبع (A) و چه در دستگاه متصل (B)) ترجیح خود را برای انجام این کار اعلام کرد، بتواند برنامه‌ها را از دستگاه منبع (A) به دستگاه متصل (B) پخش کند.
  • قادر به پخش مجدد (تزریق) رویدادهایی که در یک برنامه پخش شده در دستگاه متصل (B) رخ می‌دهند، در دستگاه منبع (A) باشند. به عنوان مثال، پخش مجدد یک رویداد لمسی در دستگاه متصل (B) در همان مختصات دستگاه منبع (A)، یا پخش مجدد یک رویداد ورودی که در دستگاه متصل (B) رخ داده است با همان معانی ورودی در دستگاه منبع (A).
  • این برنامه می‌تواند در حالی که یک برنامه در حال پخش از میکروفون استفاده می‌کند، جریان میکروفون دستگاه منبع را با جریان میکروفون دستگاه متصل جایگزین کند.
  • این برنامه صدا را از دستگاه منبع (A) ضبط کرده و آن را به دستگاه متصل (B) منتقل می‌کند.
  • توصیه می‌شود دسترسی به تنظیمات، برنامه‌ها و فروشگاه‌های برنامه را از دستگاه متصل (B) مسدود کنید.
  • از شروع اندروید ۲۵Q۲، گرفتن اسکرین‌شات و خواندن صفحه از محتوای حساس، مانند پنجره‌ها و سطوح امن ، باید در دستگاه متصل (B) ممنوع شود.
  • باید صحت ساختار سیستم عامل دستگاه متصل را تأیید کند (برای مثال، با استفاده از گواهی دستگاه مانند VerifiedBootState ).
  • فقط برنامه‌هایی را پخش کنید که فقط یک حساب کاربری منطبق در رجیستری حساب کاربری روی دستگاه (مثلاً کلاس AccountManager در اندروید) در هر دو دستگاه وجود داشته باشد. اگر اینگونه نباشد، پخش باید با یک کد یکبار مصرف که در دستگاه مبدا (A) نشان داده شده و در دستگاه متصل (B) وارد شده است، مجاز شود. توجه داشته باشید که در مورد دستگاه‌هایی که از چند کاربر (و نه چند حساب کاربری) با همان جداسازی داده‌های قابل اعتماد مانند چند کاربره اندروید پشتیبانی می‌کنند، یک کاربر به عنوان یک دستگاه حساب می‌شود.
  • در صورت منقضی شدن یا ابطال احراز هویت حساب کاربری در دستگاه متصل (B)، باید فوراً پخش جریانی را متوقف کرده و ارتباط خود را با دستگاه متصل (B) قطع کنید.
  • باید پس از اتمام زمان بیکاری دستگاه متصل (B) که محتوای نمایش داده شده روی آن قابل مشاهده است، پخش جریانی را متوقف کرده و از دستگاه متصل (B) جدا شوید. می‌توانید صفحه دستگاه متصل را برای مواردی مانند WakeLock که صفحه دستگاه اندروید را روشن نگه می‌دارند، روشن نگه دارید. باید زمان بیکاری وجود داشته باشد. اگر دستگاه متصل (B) به خودی خود زمان بیکاری ندارد، باید از حداکثر ۵ دقیقه زمان بیکاری استفاده شود.
  • اگر دستگاه مبدا (A) از فاکتور دانش قفل صفحه (LSKF) استفاده کند، هنگامی که صفحه قفل است، برنامه نباید برنامه‌ها را به دستگاه متصل (B) استریم کند، مگر اینکه دستگاه متصل (B) دارای صفحه قفل باشد و قفل آن باز شده باشد.
  • اگر دستگاه مبدا (A) توسط یک مدیر مدیریت می‌شود، برنامه باید سیاست‌های تعیین‌شده توسط مدیر در مورد فعال یا غیرفعال کردن پخش به دستگاه‌های مجاور را رعایت کند (برای مثال، با استفاده از تنظیمات DevicePolicyManager در اندروید).
  • باید اطمینان حاصل شود که نمایشگرهای راه دور و تمام منابع رویدادهای ورودی از راه دور، از دیدگاه کاربر، متعلق به یک دستگاه منطقی (مثلاً یک نمایشگر راه دور و یک صفحه کلید متصل) هستند و رویدادها بر این اساس مسیریابی می‌شوند.
  • کاربر باید بتواند پخش جریانی از دستگاه مبدا (A) را متوقف کند، برای مثال، با استفاده از یک دکمه در یک اعلان دائمی. اگر دستگاه مبدا (A) قفل صفحه داشته باشد، این رفتار توسط صفحه قفل مسدود می‌شود. باید این قابلیت دائمی در دستگاه مبدا (A) که همیشه قابل مشاهده و بالای صفحه است، نمایش داده شود.
  • باید هنگام پخش در دستگاه دیگر، یک نمایش اطلاع‌رسانی (A) روی دستگاه مبدا نمایش داده شود، مانند یک آیکون در نوار وضعیت یا یک اعلان مداوم.
WALLET یکی از:
  • این برنامه دارای یک سرویس NFC APDU است که به صورت ایستا حداقل یک AID را در دسته پرداخت ثبت می‌کند.
  • این برنامه نمونه‌ای از QuickAccessWalletService را پیاده‌سازی می‌کند.

۱- نزدیکی به این صورت تعریف می‌شود که دو دستگاه در محدوده بلوتوث یا وای‌فای یکدیگر باشند یا از یک شبکه محلی استفاده کنند.