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

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

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

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

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

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

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

برنامه «تنظیمات» در Android شامل صفحه‌ای است که به کاربران نشان می‌دهد کدام برنامه‌ها درحال‌حاضر گرداننده پیش‌فرض عملکردهای اصلی دستگاه هستند، همان‌طور که در شکل ۱ نشان داده شده است. از این صفحه، کاربران می‌توانند گرداننده پیش‌فرض را برای یک تابع مشخص تغییر دهند، همان‌طور که در شکل ۲ نشان داده شده است.

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

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

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

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

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

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

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

کاتلین

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);