مجوزها فقط در کنترل کننده های پیش فرض استفاده می شوند

چندین عملکرد اصلی دستگاه، مانند خواندن گزارش تماس ها و ارسال پیامک، به دسترسی به اطلاعات حساس کاربر بستگی دارد. برای محافظت از حریم خصوصی کاربر و ارائه کنترل بیشتر کاربران بر اطلاعاتی که به برنامه‌ها در دستگاه خود ارائه می‌کنند، Google Play دسترسی برنامه‌ها به گروه‌های مجوز مربوط به تماس و پیام‌رسانی را محدود می‌کند.

اگر برنامه خود را در فروشگاه Google Play توزیع می‌کنید و می‌خواهید به اطلاعات حساس کاربر مربوط به گزارش تماس‌ها و پیام‌های پیامک دسترسی داشته باشید، برنامه شما باید به‌عنوان کنترل‌کننده پیش‌فرض کاربر برای عملکرد دستگاه اصلی مربوط به آن مجوز ثبت شود، مگر اینکه برنامه شما راضی کند. یکی از موارد استثنایی که در مرکز راهنمای کنسول Play ظاهر می شود. به عنوان مثال، برای دسترسی به مجوزهای مربوط به تماس، برنامه شما باید به عنوان کنترل کننده تلفن یا دستیار پیش فرض کاربر ثبت شود، مگر اینکه برنامه شما یک مورد استثنا را برآورده کند.

این راهنما یک نمای کلی از نحوه دسترسی کاربران به کنترل‌کننده‌های پیش‌فرض در دستگاه‌های مجهز به Android ارائه می‌دهد. سپس این راهنما شرایطی را که یک برنامه قبل از واجد شرایط شدن برای کنترل پیش فرض باید برآورده کند، بررسی می کند. در نهایت، راهنما شما را در فرآیند دریافت رضایت کاربر برای تبدیل شدن به یک کنترل کننده پیش فرض راهنمایی می کند.

برای کسب اطلاعات بیشتر درباره کنترل‌کننده‌های پیش‌فرض، و همچنین نحوه مدیریت مجوزها در برنامه‌ای که در فروشگاه Play موجود است، به راهنمای خط‌مشی مجوزها مراجعه کنید .

مجموعه کنترل کننده های پیش فرض را مشاهده و تغییر دهید

اندروید به کاربران اجازه می‌دهد تا کنترل‌کننده‌های پیش‌فرض را برای چندین مورد استفاده اصلی، مانند برقراری تماس‌های تلفنی، ارسال پیام‌های SMS و ارائه قابلیت‌های فناوری کمکی تنظیم کنند.

برنامه تنظیمات در اندروید شامل صفحه‌ای است که به کاربران نشان می‌دهد که کدام برنامه‌ها در حال حاضر کنترل‌کننده‌های پیش‌فرض برای عملکردهای اصلی دستگاه هستند، همانطور که در شکل 1 نشان داده شده است. از این صفحه، کاربران می‌توانند کنترل‌کننده پیش‌فرض را برای یک عملکرد معین تغییر دهند، همانطور که در شکل 2 نشان داده شده است.

ضبط صفحه تنظیمات پیش فرض برنامه ها
شکل 1. صفحه تنظیمات سیستم که فهرستی از کنترل کننده های پیش فرض روی یک دستگاه را نشان می دهد.
ضبط صفحه تنظیمات پیش فرض برنامه SMS
شکل 2. صفحه تنظیمات سیستم نشان می دهد که چگونه کنترل کننده پیامک پیش فرض را تغییر دهید.

الزامات مربوط به کنترل کننده های پیش فرض را دنبال کنید

با توجه به اطلاعات حساس کاربر که یک برنامه در حین ارائه به‌عنوان کنترل‌کننده پیش‌فرض به آن‌ها دسترسی پیدا می‌کند، برنامه شما نمی‌تواند به یک کنترل‌کننده پیش‌فرض تبدیل شود، مگر اینکه فهرست‌بندی فروشگاه Play و الزامات عملکرد اصلی زیر را برآورده کند:

  • برنامه شما باید بتواند عملکردی را که کنترل کننده پیش فرض آن است انجام دهد. به عنوان مثال، یک کنترل کننده پیش فرض پیامک باید قادر به ارسال پیامک باشد.
  • برنامه شما باید یک خط مشی رازداری ارائه دهد.
  • برنامه شما باید عملکرد اصلی خود را در توضیحات فروشگاه Play مشخص کند. به عنوان مثال، یک کنترل کننده پیش فرض تلفن باید قابلیت های مربوط به تلفن خود را در توضیحات شرح دهد.
  • برنامه شما باید مجوزهایی را اعلام کند که برای موارد استفاده آن مناسب است. برای جزئیات بیشتر درباره مجوزهایی که می‌توانید به‌عنوان یک کنترل‌کننده معین اعلام کنید، به راهنمای استفاده از پیامک یا گروه‌های مجوز گزارش تماس در مرکز راهنمای کنسول Play مراجعه کنید.
  • برنامه شما باید قبل از درخواست مجوزهای مرتبط با این کنترل کننده، درخواست کند تا به یک کنترل کننده پیش فرض تبدیل شود. به عنوان مثال، یک برنامه قبل از درخواست مجوز READ_SMS باید درخواست کند تا به عنوان کنترل کننده پیش فرض پیامک تبدیل شود.

پس از اطمینان از اینکه برنامه شما از هر یک از الزامات لازم برای تبدیل شدن به یک کنترل کننده پیش فرض پیروی می کند، می توانید منطق را برای نمایش گفتگوی نشان داده شده در شکل 3 اضافه کنید. این گفتگو از کاربر می خواهد که برنامه شما را به عنوان کنترل کننده پیش فرض برای یک مورد خاص استفاده کند.

تصویربرداری از صفحه نمایش گفتگوی رو به روی کاربر
شکل 3. از کاربر می پرسد که آیا می خواهد مدیریت پیامک پیش فرض دستگاه خود را تغییر دهد.

کد مثال زیر منطق لازم برای نمایش اعلانی را نشان می دهد که از کاربر می خواهد مدیریت پیامک پیش فرض دستگاه خود را تغییر دهد:

کاتلین

val setSmsAppIntent = Intent(Telephony.Sms.Intents.ACTION_CHANGE_DEFAULT)
setSmsAppIntent.putExtra(Telephony.Sms.Intents.EXTRA_PACKAGE_NAME, packageName)
startActivityForResult(setSmsAppIntent, your-result-code)

جاوا

Intent setSmsAppIntent =
        new Intent(Telephony.Sms.Intents.ACTION_CHANGE_DEFAULT);
setSmsAppIntent.putExtra(Telephony.Sms.Intents.EXTRA_PACKAGE_NAME,
        getPackageName());
startActivityForResult(setSmsAppIntent, your-result-code);