درخواست مجوز در Wear OS

کلمات کلیدی: پوشیدن، مجوزها، collection_guideslandingwear مسیر تصویر: images/training/wear/multiple_permissions.png

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

درست مانند یک برنامه تلفن همراه، کاربر باید برای دسترسی به برخی قابلیت‌ها، به برنامه Wear مجوزهایی اعطا کند. در برنامه‌های Wear خود، بدون درخواست هیچ مجوزی ، قابلیت‌های معناداری را ارائه دهید .

سناریوهای مجوز

هنگام درخواست مجوزهای خطرناک در Wear OS، ممکن است با چندین سناریو مواجه شوید:

  • برنامه Wear برای اجرای یک برنامه روی دستگاه پوشیدنی، درخواست مجوز می‌کند.

  • برنامه Wear برای اجرای یک برنامه روی گوشی، درخواست مجوز می‌کند.

  • برنامه تلفن برای برنامه‌ای که روی دستگاه پوشیدنی اجرا می‌شود، درخواست مجوز می‌کند.

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

برای مشاهده‌ی تمام این سناریوها در یک برنامه‌ی کاربردی، نمونه‌ی ExerciseSampleCompose را در گیت‌هاب بررسی کنید.

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

اپلیکیشن Wear درخواست مجوز پوشیدنی می‌کند

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

اصول مجوزها را مرور کنید تا مطمئن شوید که بهترین تجربه را برای کاربران خود فراهم می‌کنید، و به یاد داشته باشید که shouldShowRequestPermissionRationale() را بررسی کنید و در صورت نیاز اطلاعات اضافی ارائه دهید .

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

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

اپلیکیشن Wear از شما اجازه دسترسی به تلفن را درخواست می‌کند

وقتی برنامه Wear درخواست مجوز تلفن را می‌دهد - برای مثال، یک برنامه پوشیدنی می‌خواهد به عکس‌ها یا سایر داده‌های حساس در نسخه موبایل برنامه دسترسی داشته باشد - برنامه Wear باید کاربر را برای پذیرش مجوز به تلفن ارسال کند. در آنجا، برنامه تلفن می‌تواند با استفاده از یک فعالیت، اطلاعات بیشتری را در اختیار کاربر قرار دهد. در این فعالیت، دو دکمه قرار دهید: یکی برای اعطای مجوز و دیگری برای رد آن.

اپلیکیشن Wear کاربر را برای اعطای مجوز به گوشی می‌فرستد.
شکل ۲. کاربر را برای اعطای مجوز به تلفن ارسال کنید.

برنامه تلفن درخواست مجوز پوشیدنی را دارد

اگر کاربر در یک برنامه تلفن همراه باشد و برنامه به یک مجوز پوشیدنی نیاز داشته باشد - برای مثال، برای پیش بارگذاری موسیقی در صورت قطع شدن تلفن - برنامه تلفن همراه کاربر را برای پذیرش مجوز به دستگاه پوشیدنی ارسال می‌کند. نسخه پوشیدنی برنامه از متد requestPermissions() برای فعال کردن پنجره مجوزهای سیستم استفاده می‌کند.

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

برنامه تلفن چندین مجوز را به طور همزمان درخواست می‌کند

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

برنامه‌های همکار در اندروید ۱۲ (سطح API 31) و بالاتر می‌توانند هنگام اتصال به ساعت از پروفایل‌های دستگاه همراه استفاده کنند. استفاده از یک پروفایل، فرآیند ثبت‌نام را با تجمیع اعطای مجموعه‌ای از مجوزهای خاص برای نوع دستگاه در یک مرحله، ساده می‌کند.

مجوزهای همراه پس از اتصال دستگاه به برنامه همراه اعطا می‌شوند و فقط تا زمانی که دستگاه مرتبط باشد، ادامه دارند. حذف برنامه یا حذف ارتباط، مجوزها را حذف می‌کند. برای جزئیات بیشتر، به AssociationRequest.Builder.setDeviceProfile() مراجعه کنید.

الگوهای درخواست مجوز

الگوهای مختلفی برای درخواست مجوز از کاربران وجود دارد. به ترتیب اولویت، آنها عبارتند از:

  • وقتی مجوز برای یک عملکرد خاص بدیهی است که ضروری است اما برای اجرای کل برنامه ضروری نیست، در متن سوال کنید.

  • وقتی دلیل درخواست مجوز مشخص نیست و مجوز برای اجرای کل برنامه ضروری نیست، در زمینه آموزش دهید.

این الگوها در بخش‌های بعدی توضیح داده شده‌اند.

در متن بپرسید

زمانی که برای کاربر مشخص است که چرا برای انجام یک عملیات خاص به مجوز نیاز است، درخواست مجوز کنید. کاربران زمانی که ارتباط مجوزی را با ویژگی مورد نظر خود درک کنند، احتمال بیشتری دارد که آن را اعطا کنند.

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

این برنامه در مواقع ضروری درخواست مجوز می‌کند.
شکل ۵. درخواست اجازه در متن.

آموزش در چارچوب

شکل ۶ نمونه‌ای از آموزش درون‌زمینه‌ای را نشان می‌دهد. این برنامه برای شروع تایمر نیازی به مجوز ندارد، اما یک نشانه آموزشی درون‌خطی نشان می‌دهد که بخشی از فعالیت - تشخیص موقعیت مکانی - قفل شده است. وقتی کاربر روی نشانه ضربه می‌زند، صفحه درخواست مجوز ظاهر می‌شود و به کاربر اجازه می‌دهد تشخیص موقعیت مکانی را باز کند.

از متد shouldShowRequestPermissionRationale() برای کمک به برنامه خود در تصمیم‌گیری در مورد ارائه اطلاعات بیشتر استفاده کنید. برای جزئیات بیشتر، به بخش درخواست مجوزهای برنامه مراجعه کنید. به عنوان یک جایگزین، می‌توانید نحوه مدیریت نمایش اطلاعات توسط برنامه نمونه بلندگو در GitHub را بررسی کنید.

وقتی نیاز به مجوز ایجاد شود، برنامه توضیح می‌دهد که چرا مجوز ضروری است.
شکل ۶. آموزش در بافتار.

رد کردن را مدیریت کنید

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

شکل ۷ استفاده از نماد قفل را نشان می‌دهد که نشان می‌دهد یک ویژگی قفل شده است زیرا کاربر اجازه استفاده از آن را نداده است.

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

وقتی یک پنجره‌ی مجوز پوشیدنی که قبلاً رد شده بود، برای بار دوم ظاهر می‌شود، شامل گزینه‌ی «رد کن، دیگر نمایش داده نشود» می‌شود. اگر کاربر این گزینه را انتخاب کند، تنها راه برای اعطای این مجوز در آینده، رفتن به برنامه‌ی تنظیمات پوشیدنی است.

سیستم پیشنهاد می‌دهد که درخواست مجوز را متوقف کند.
شکل ۸. کاربر می‌تواند از طریق تنظیمات به درخواست مجوزی که قبلاً دو بار رد شده است، دسترسی پیدا کند.

درباره نحوه مدیریت رد مجوز بیشتر بدانید.

مجوزهای مربوط به سرویس‌ها

فقط یک اکتیویتی می‌تواند متد requestPermissions() را فراخوانی کند، بنابراین اگر کاربر با استفاده از یک سرویس با برنامه شما تعامل داشته باشد - مثلاً از طریق صفحه ساعت - سرویس باید قبل از درخواست مجوز، یک اکتیویتی را باز کند. در این اکتیویتی، آموزش بیشتری در مورد دلیل نیاز به مجوز ارائه دهید.

به طور کلی، برای صفحه ساعت درخواست مجوز نکنید. در عوض، یک بخش پیچیده (complication) پیاده‌سازی کنید و به کاربر اجازه دهید انتخاب کند که کدام داده‌ها را از طریق آن بخش نمایش دهد.

تنظیمات

کاربر می‌تواند مجوزهای برنامه Wear را در هر زمانی در تنظیمات تغییر دهد. وقتی کاربر سعی می‌کند کاری را انجام دهد که نیاز به مجوز دارد، ابتدا متد checkSelfPermission() را فراخوانی کنید تا ببینید آیا برنامه مجوز انجام عملیات را دارد یا خیر.

حتی اگر کاربر قبلاً مجوز را اعطا کرده باشد، این بررسی را انجام دهید، زیرا ممکن است کاربر متعاقباً آن را لغو کرده باشد.

کاربر می‌تواند از طریق برنامه تنظیمات، مجوزها را تغییر دهد.
شکل ۹. کاربر می‌تواند با استفاده از برنامه تنظیمات، مجوزها را تغییر دهد.
{% کلمه به کلمه %} {% فعل کمکی %} {% کلمه به کلمه %} {% فعل کمکی %}