به عنوان بخشی از بهبود کیفیت برنامه و محافظت از حریم خصوصی کاربر، توصیه می کنیم استفاده از مجوزها را در برنامه های خود به حداقل برسانید. این به کاربران کمک میکند تا برنامههای باکیفیتی را پیدا کنند و از آنها استفاده کنند که محیط کاربری امن و مطمئنی را فراهم میکنند.
درخواست مجوز از کاربران جریان کاربر را قطع می کند و کاربران می توانند درخواست شما را رد کنند. علاوه بر این، هر بار که مجوز جدیدی را اعلام میکنید، باید نحوه درخواست و اشتراکگذاری دادههای کاربر را بررسی کنید . برخی از مجوزها و APIهای حساس به ویژه از شما میخواهند که دسترسی، جمعآوری، استفاده و اشتراکگذاری دادههای خود را در برنامه افشا کنید.
چندین راه جایگزین برای به حداقل رساندن استفاده از مجوز وجود دارد:
- در صورتی که برنامه شما فقط به موقعیت مکانی تقریبی نیاز دارد، مجوزهایی را اعلام کنید که اطلاعات مکان درشت را به جای اطلاعات دقیق مکان ارائه می دهند.
- APIهایی را فراخوانی کنید که به برنامه شما اجازه می دهند بدون اعلام مجوز، عملکرد مورد نظر را انجام دهد.
- بهجای اعلام مجوز، اهداف یا کنترلکنندههای رویداد خاص را برای انجام عملکرد فراخوانی کنید.
- این سیستم قراردادهای داخلی را برای عملیات فایل های مختلف فراهم می کند و همچنین از قراردادهای سفارشی پشتیبانی می کند.
اگر باید مجوزی را اعلام کنید، همیشه به تصمیم کاربر احترام بگذارید و راهی برای تضعیف تجربه برنامه خود ارائه دهید.
این صفحه چندین مورد استفاده را توضیح میدهد که برنامه شما میتواند بدون اعلام نیاز به مجوز انجام دهد.
نمایش مکان های نزدیک
شاید لازم باشد برنامه شما مکان تقریبی کاربر را بداند. این برای نشان دادن اطلاعات مربوط به موقعیت مکانی، مانند رستوران های اطراف مفید است.
برخی از موارد استفاده فقط به تخمین تقریبی از مکان دستگاه نیاز دارند. در این شرایط، بسته به اینکه برنامه شما هر چند وقت یک بار به اطلاعات مربوط به موقعیت مکانی نیاز دارد، یکی از موارد زیر را انجام دهید:
- اگر برنامه شما اغلب به مکان نیاز دارد، مجوز
ACCESS_COARSE_LOCATION
را اعلام کنید. این مجوز تخمین موقعیت مکانی دستگاه را از خدمات مکان ارائه می دهد، همانطور که در مستندات مربوط به دقت مکان تقریبی توضیح داده شده است. - اگر برنامه شما کمتر یا فقط یک بار به مکان نیاز دارد، به جای آن از کاربر بخواهید آدرس یا کد پستی را وارد کند.
سایر موارد استفاده نیاز به تخمین دقیق تری از مکان دستگاه دارند. این موقعیتها تنها مواقعی هستند که اعلام مجوز ACCESS_FINE_LOCATION
مشکلی ندارد.
ایجاد و دسترسی به فایل ها
اندروید به شما امکان میدهد بدون نیاز به اعلام مجوزهای مربوط به فضای ذخیرهسازی یا حسگرها، فایلها را ایجاد کرده و به آنها دسترسی داشته باشید.
باز کردن فایل های رسانه ای
برنامه شما ممکن است به کاربران اجازه دهد از بین عکسها و ویدیوهای خود، مانند پیوستهای پیام یا عکسهای نمایه، یکی را انتخاب کنند.
برای پشتیبانی از این قابلیت، از انتخابگر عکس استفاده کنید. انتخابگر عکس برای استفاده نیازی به مجوز زمان اجرا ندارد. هنگامی که کاربر با انتخابگر عکس برای انتخاب عکسها یا ویدیوها برای اشتراکگذاری با برنامه شما تعامل برقرار میکند، سیستم به URI مرتبط با فایلهای رسانه انتخابشده دسترسی خواندن موقت میدهد.
اگر برنامه شما نیاز به دسترسی به فایل های رسانه ای بدون استفاده از انتخابگر عکس دارد، نیازی به اعلام هیچ گونه مجوز ذخیره سازی ندارید:
- اگر به فایلهای رسانهای که برنامه شما ایجاد کرده است دسترسی دارید، برنامه شما از قبل به این فایلها در فروشگاه رسانه دسترسی دارد.
- اگر به فایلهای رسانهای که سایر برنامهها ایجاد کردهاند دسترسی دارید، از چارچوب دسترسی به فضای ذخیرهسازی استفاده کنید .
اسناد را باز کنید
برنامه شما ممکن است اسنادی را که کاربر ایجاد کرده است، در برنامه شما یا در برنامه دیگری نشان دهد. یک مثال رایج یک فایل متنی است.
در این شرایط، READ_EXTERNAL_STORAGE
را فقط برای سازگاری با دستگاههای قدیمیتر اعلام کنید. android:maxSdkVersion
را روی 28
تنظیم کنید.
بسته به اینکه کدام برنامه سند را ایجاد کرده است، یکی از موارد زیر را انجام دهید:
- اگر کاربر سند را در برنامه شما ایجاد کرده است، مستقیماً به آن دسترسی داشته باشید .
- اگر کاربر سند را در برنامه دیگری ایجاد کرده است، از Storage Access Framework استفاده کنید.
عکس بگیر
کاربران ممکن است با استفاده از برنامه از پیش نصب شده دوربین سیستم، در برنامه شما عکس بگیرند.
در این شرایط، مجوز CAMERA
را اعلام نکنید. در عوض، اقدام قصد ACTION_IMAGE_CAPTURE
را فراخوانی کنید.
یک ویدیو ضبط کنید
کاربران ممکن است با استفاده از برنامه از پیش نصب شده دوربین سیستم، ویدیوها را در برنامه شما ضبط کنند.
در این شرایط، مجوز CAMERA
را اعلام نکنید. در عوض، اقدام قصد ACTION_VIDEO_CAPTURE
را فراخوانی کنید.
دستگاهی را که نمونه ای از برنامه شما را اجرا می کند، شناسایی کنید
یک نمونه خاص از برنامه شما ممکن است نیاز داشته باشد که بداند در کدام دستگاه اجرا می شود. این برای برنامههایی که دارای تنظیمات برگزیده یا پیامرسانی خاص دستگاه هستند، مانند فهرستهای پخش مختلف برای دستگاههای تلویزیونی و دستگاههای پوشیدنی مفید است.
در این شرایط، مستقیماً به IMEI دستگاه دسترسی نداشته باشید. در واقع، از اندروید 10، شما نمی توانید این کار را انجام دهید. در عوض، یکی از موارد زیر را انجام دهید:
- با استفاده از کتابخانه Instance ID یک شناسه دستگاه منحصر به فرد برای نمونه برنامه خود دریافت کنید.
- شناسه خود را ایجاد کنید که در فضای ذخیره سازی برنامه شما قرار دارد. از توابع اولیه سیستم مانند
randomUUID()
استفاده کنید.
با یک دستگاه از طریق بلوتوث جفت شود
ممکن است برنامه شما با انتقال دادهها از طریق بلوتوث به دستگاه دیگری تجربه بهبود یافتهای را ارائه دهد.
برای پشتیبانی از این عملکرد، مجوزهای ACCESS_FINE_LOCATION
، ACCESS_COARSE_LOCATIION
، یا BLUETOOTH_ADMIN
را اعلام نکنید. در عوض، از جفتسازی دستگاه همراه استفاده کنید.
شماره کارت پرداخت را به صورت خودکار وارد کنید
خدمات Google Play کتابخانه ای ارائه می دهد که به شما امکان می دهد به طور خودکار شماره کارت پرداخت را وارد کنید. به جای اعلام مجوز CAMERA
، می توانید از کتابخانه تشخیص کارت اعتباری و نقدی استفاده کنید.
تماس های تلفنی و پیام های متنی را مدیریت کنید
سرویسهای Android و Google Play کتابخانههایی را ارائه میکنند که به شما امکان میدهند تماسهای تلفنی و پیامهای متنی را بدون نیاز به اعلام هرگونه مجوز مربوط به تماسهای تلفنی یا پیامهای SMS مدیریت کنید.
رمز عبور یک بار مصرف را به صورت خودکار وارد کنید
برای سادهسازی گردش کار احراز هویت دو مرحلهای، ممکن است برنامه شما بهطور خودکار رمز عبور یکبار مصرفی را وارد کند که برای تأیید هویت کاربر به دستگاه ارسال میشود.
برای پشتیبانی از این عملکرد در دستگاههای ارائهشده توسط سرویسهای Google Play، مجوز READ_SMS
را اعلام نکنید. در عوض، از SMS Retriever API استفاده کنید.
در دستگاههای دیگر، اگر برنامه شما Android 8.0 (سطح API 26) یا بالاتر را هدف قرار میدهد، با استفاده از createAppSpecificSmsToken()
یک توکن مخصوص برنامه ایجاد کنید. این نشانه را به برنامه یا سرویس دیگری ارسال کنید که می تواند پیامک تأیید صحت ارسال کند.
شماره تلفن کاربر را به صورت خودکار وارد کنید
برای ارائه فروش یا پشتیبانی کارآمدتر، ممکن است برنامه شما به کاربر اجازه دهد شماره تلفن دستگاه خود را به صورت خودکار وارد کند.
برای پشتیبانی از این عملکرد در دستگاههای ارائهشده توسط سرویسهای Google Play، مجوز READ_PHONE_STATE
را اعلام نکنید. به جای آن، از کتابخانه شماره تلفن استفاده کنید.
تماس های تلفنی را فیلتر کنید
برای به حداقل رساندن وقفه های غیر ضروری برای کاربر، برنامه شما ممکن است تماس های تلفنی را برای هرزنامه فیلتر کند.
برای پشتیبانی از این عملکرد، مجوز READ_PHONE_STATE
را اعلام نکنید. در عوض، از CallScreeningService
API استفاده کنید.
برقراری تماس های تلفنی
ممکن است برنامه شما امکان برقراری تماس تلفنی را با ضربه زدن روی اطلاعات مخاطب ارائه دهد.
برای پشتیبانی از این عملکرد، به جای عمل ACTION_CALL
از اقدام قصد ACTION_DIAL
استفاده کنید. ACTION_CALL
به مجوز زمان نصب CALL_PHONE
نیاز دارد که از نصب برنامه شما توسط دستگاههایی که نمیتوانند تماس برقرار کنند، مانند برخی تبلتها، جلوگیری میکند.
وقتی برنامه شما قطع شد، رسانه را متوقف کنید
اگر کاربر یک تماس تلفنی دریافت کرد یا زنگ هشدار پیکربندی شده توسط کاربر رخ داد، برنامه شما باید پخش رسانه را متوقف کند تا زمانی که برنامه شما فوکوس صوتی را دوباره به دست آورد.
برای پشتیبانی از این عملکرد، مجوز READ_PHONE_STATE
را اعلام نکنید. درعوض، کنترل کننده رویداد onAudioFocusChange()
را پیاده سازی کنید که زمانی که سیستم فوکوس صوتی خود را تغییر می دهد به طور خودکار اجرا می شود. درباره نحوه اجرای فوکوس صوتی بیشتر بیاموزید.
اسکن بارکدها
Android شامل پشتیبانی از Google Code Scanner API است که توسط سرویسهای Google Play پشتیبانی میشود، که به شما امکان میدهد بارکدها را بدون اعلام هیچ مجوز دوربین رمزگشایی کنید. این API به حفظ حریم خصوصی کاربر کمک میکند و این احتمال را کاهش میدهد که نیاز به ایجاد یک رابط کاربری سفارشی برای مورد استفاده اسکن بارکد خود داشته باشید.
API بارکد را اسکن می کند و فقط نتایج اسکن را به برنامه شما برمی گرداند. تصاویر در دستگاه پردازش میشوند و Google هیچ داده یا نتایج اسکنی را ذخیره نمیکند.
اگر برنامه شما نیاز به پشتیبانی از موارد استفاده پیچیده یا قالبهای بارکد دارد، یا اگر به یک رابط کاربری سفارشی نیاز دارد، به جای آن از API اسکن بارکد ML Kit استفاده کنید.
بازنشانی مجوزهای استفاده نشده
اندروید راههای متعددی را برای بازنشانی مجوزهای زمان اجرا استفاده نشده به حالت پیشفرض و رد شده ارائه میکند.
راهنمای طراحی را بخوانید.
درخواست مجوزهای زمان اجرا
هنگامی که ارزیابی کردید که برنامه شما نیاز به اعلام و درخواست مجوزهای زمان اجرا دارد، برای انجام این کار یک گردش کاری خاص را دنبال کنید.
راهنمای طراحی را بخوانید.
توضیح دهید که چرا برنامه شما به مجوز نیاز دارد
استفاده از requestPermissions()
یک گفتگو را نشان می دهد که نشان می دهد برنامه شما می خواهد از کدام مجوزها استفاده کند اما دلیل آن را توضیح نمی دهد، که ممکن است برای کاربر گیج کننده باشد.
برای جزئیات بیشتر و توصیههایی درباره نحوه و زمان نمایش این گفتگو، راهنمای طراحی را بخوانید.
رسیدگی به رد مجوزها
برنامه شما باید به کاربران کمک کند تا پیامدهای رد کردن مجوز را قبل و بعد از اینکه این کار را انجام دهند درک کنند.
راهنمای طراحی را بخوانید.
،به عنوان بخشی از بهبود کیفیت برنامه و محافظت از حریم خصوصی کاربر، توصیه می کنیم استفاده از مجوزها را در برنامه های خود به حداقل برسانید. این به کاربران کمک میکند تا برنامههای باکیفیتی را پیدا کنند و از آنها استفاده کنند که محیط کاربری امن و مطمئنی را فراهم میکنند.
درخواست مجوز از کاربران جریان کاربر را قطع می کند و کاربران می توانند درخواست شما را رد کنند. علاوه بر این، هر بار که مجوز جدیدی را اعلام میکنید، باید نحوه درخواست و اشتراکگذاری دادههای کاربر را بررسی کنید . برخی از مجوزها و APIهای حساس به ویژه از شما میخواهند که دسترسی، جمعآوری، استفاده و اشتراکگذاری دادههای خود را در برنامه افشا کنید.
چندین راه جایگزین برای به حداقل رساندن استفاده از مجوز وجود دارد:
- در صورتی که برنامه شما فقط به موقعیت مکانی تقریبی نیاز دارد، مجوزهایی را اعلام کنید که اطلاعات مکان درشت را به جای اطلاعات دقیق مکان ارائه می دهند.
- APIهایی را فراخوانی کنید که به برنامه شما اجازه می دهند بدون اعلام مجوز، عملکرد مورد نظر را انجام دهد.
- بهجای اعلام مجوز، اهداف یا کنترلکنندههای رویداد خاص را برای انجام عملکرد فراخوانی کنید.
- این سیستم قراردادهای داخلی را برای عملیات فایل های مختلف فراهم می کند و همچنین از قراردادهای سفارشی پشتیبانی می کند.
اگر باید مجوزی را اعلام کنید، همیشه به تصمیم کاربر احترام بگذارید و راهی برای تضعیف تجربه برنامه خود ارائه دهید.
این صفحه چندین مورد استفاده را توضیح میدهد که برنامه شما میتواند بدون اعلام نیاز به مجوز انجام دهد.
نمایش مکان های نزدیک
شاید لازم باشد برنامه شما مکان تقریبی کاربر را بداند. این برای نشان دادن اطلاعات مربوط به موقعیت مکانی، مانند رستوران های اطراف مفید است.
برخی از موارد استفاده فقط به تخمین تقریبی از مکان دستگاه نیاز دارند. در این شرایط، بسته به اینکه برنامه شما هر چند وقت یک بار به اطلاعات مربوط به موقعیت مکانی نیاز دارد، یکی از موارد زیر را انجام دهید:
- اگر برنامه شما اغلب به مکان نیاز دارد، مجوز
ACCESS_COARSE_LOCATION
را اعلام کنید. این مجوز تخمین موقعیت مکانی دستگاه را از خدمات مکان ارائه می دهد، همانطور که در مستندات مربوط به دقت مکان تقریبی توضیح داده شده است. - اگر برنامه شما کمتر یا فقط یک بار به مکان نیاز دارد، به جای آن از کاربر بخواهید آدرس یا کد پستی را وارد کند.
سایر موارد استفاده نیاز به تخمین دقیق تری از مکان دستگاه دارند. این موقعیتها تنها مواقعی هستند که اعلام مجوز ACCESS_FINE_LOCATION
مشکلی ندارد.
ایجاد و دسترسی به فایل ها
اندروید به شما امکان میدهد بدون نیاز به اعلام مجوزهای مربوط به فضای ذخیرهسازی یا حسگرها، فایلها را ایجاد کرده و به آنها دسترسی داشته باشید.
باز کردن فایل های رسانه ای
برنامه شما ممکن است به کاربران اجازه دهد از بین عکسها و ویدیوهای خود، مانند پیوستهای پیام یا عکسهای نمایه، یکی را انتخاب کنند.
برای پشتیبانی از این قابلیت، از انتخابگر عکس استفاده کنید. انتخابگر عکس برای استفاده نیازی به مجوز زمان اجرا ندارد. هنگامی که کاربر با انتخابگر عکس برای انتخاب عکسها یا ویدیوها برای اشتراکگذاری با برنامه شما تعامل برقرار میکند، سیستم به URI مرتبط با فایلهای رسانه انتخابشده دسترسی خواندن موقت میدهد.
اگر برنامه شما نیاز به دسترسی به فایل های رسانه ای بدون استفاده از انتخابگر عکس دارد، نیازی به اعلام هیچ گونه مجوز ذخیره سازی ندارید:
- اگر به فایلهای رسانهای که برنامه شما ایجاد کرده است دسترسی دارید، برنامه شما از قبل به این فایلها در فروشگاه رسانه دسترسی دارد.
- اگر به فایلهای رسانهای که سایر برنامهها ایجاد کردهاند دسترسی دارید، از چارچوب دسترسی به فضای ذخیرهسازی استفاده کنید .
اسناد را باز کنید
برنامه شما ممکن است اسنادی را که کاربر ایجاد کرده است، در برنامه شما یا در برنامه دیگری نشان دهد. یک مثال رایج یک فایل متنی است.
در این شرایط، READ_EXTERNAL_STORAGE
را فقط برای سازگاری با دستگاههای قدیمیتر اعلام کنید. android:maxSdkVersion
را روی 28
تنظیم کنید.
بسته به اینکه کدام برنامه سند را ایجاد کرده است، یکی از موارد زیر را انجام دهید:
- اگر کاربر سند را در برنامه شما ایجاد کرده است، مستقیماً به آن دسترسی داشته باشید .
- اگر کاربر سند را در برنامه دیگری ایجاد کرده است، از Storage Access Framework استفاده کنید.
عکس بگیر
کاربران ممکن است با استفاده از برنامه از پیش نصب شده دوربین سیستم، در برنامه شما عکس بگیرند.
در این شرایط، مجوز CAMERA
را اعلام نکنید. در عوض، اقدام قصد ACTION_IMAGE_CAPTURE
را فراخوانی کنید.
یک ویدیو ضبط کنید
کاربران ممکن است با استفاده از برنامه از پیش نصب شده دوربین سیستم، ویدیوها را در برنامه شما ضبط کنند.
در این شرایط، مجوز CAMERA
را اعلام نکنید. در عوض، اقدام قصد ACTION_VIDEO_CAPTURE
را فراخوانی کنید.
دستگاهی را که نمونه ای از برنامه شما را اجرا می کند، شناسایی کنید
یک نمونه خاص از برنامه شما ممکن است نیاز داشته باشد که بداند در کدام دستگاه اجرا می شود. این برای برنامههایی که دارای تنظیمات برگزیده یا پیامرسانی خاص دستگاه هستند، مانند فهرستهای پخش مختلف برای دستگاههای تلویزیونی و دستگاههای پوشیدنی مفید است.
در این شرایط، مستقیماً به IMEI دستگاه دسترسی نداشته باشید. در واقع، از اندروید 10، شما نمی توانید این کار را انجام دهید. در عوض، یکی از موارد زیر را انجام دهید:
- با استفاده از کتابخانه Instance ID یک شناسه دستگاه منحصر به فرد برای نمونه برنامه خود دریافت کنید.
- شناسه خود را ایجاد کنید که در فضای ذخیره سازی برنامه شما قرار دارد. از توابع اولیه سیستم مانند
randomUUID()
استفاده کنید.
با یک دستگاه از طریق بلوتوث جفت شود
ممکن است برنامه شما با انتقال دادهها از طریق بلوتوث به دستگاه دیگری تجربه بهبود یافتهای را ارائه دهد.
برای پشتیبانی از این عملکرد، مجوزهای ACCESS_FINE_LOCATION
، ACCESS_COARSE_LOCATIION
، یا BLUETOOTH_ADMIN
را اعلام نکنید. در عوض، از جفتسازی دستگاه همراه استفاده کنید.
شماره کارت پرداخت را به صورت خودکار وارد کنید
خدمات Google Play کتابخانه ای ارائه می دهد که به شما امکان می دهد به طور خودکار شماره کارت پرداخت را وارد کنید. به جای اعلام مجوز CAMERA
، می توانید از کتابخانه تشخیص کارت اعتباری و نقدی استفاده کنید.
تماس های تلفنی و پیام های متنی را مدیریت کنید
سرویسهای Android و Google Play کتابخانههایی را ارائه میکنند که به شما امکان میدهند تماسهای تلفنی و پیامهای متنی را بدون نیاز به اعلام هرگونه مجوز مربوط به تماسهای تلفنی یا پیامهای SMS مدیریت کنید.
رمز عبور یک بار مصرف را به صورت خودکار وارد کنید
برای سادهسازی گردش کار احراز هویت دو مرحلهای، ممکن است برنامه شما بهطور خودکار رمز عبور یکبار مصرفی را وارد کند که برای تأیید هویت کاربر به دستگاه ارسال میشود.
برای پشتیبانی از این عملکرد در دستگاههای ارائهشده توسط سرویسهای Google Play، مجوز READ_SMS
را اعلام نکنید. در عوض، از SMS Retriever API استفاده کنید.
در دستگاههای دیگر، اگر برنامه شما Android 8.0 (سطح API 26) یا بالاتر را هدف قرار میدهد، با استفاده از createAppSpecificSmsToken()
یک توکن مخصوص برنامه ایجاد کنید. این نشانه را به برنامه یا سرویس دیگری ارسال کنید که می تواند پیامک تأیید صحت ارسال کند.
شماره تلفن کاربر را به صورت خودکار وارد کنید
برای ارائه فروش یا پشتیبانی کارآمدتر، ممکن است برنامه شما به کاربر اجازه دهد شماره تلفن دستگاه خود را به صورت خودکار وارد کند.
برای پشتیبانی از این عملکرد در دستگاههای ارائهشده توسط سرویسهای Google Play، مجوز READ_PHONE_STATE
را اعلام نکنید. به جای آن، از کتابخانه شماره تلفن استفاده کنید.
تماس های تلفنی را فیلتر کنید
برای به حداقل رساندن وقفه های غیر ضروری برای کاربر، برنامه شما ممکن است تماس های تلفنی را برای هرزنامه فیلتر کند.
برای پشتیبانی از این عملکرد، مجوز READ_PHONE_STATE
را اعلام نکنید. در عوض، از CallScreeningService
API استفاده کنید.
برقراری تماس های تلفنی
ممکن است برنامه شما امکان برقراری تماس تلفنی را با ضربه زدن روی اطلاعات مخاطب ارائه دهد.
برای پشتیبانی از این عملکرد، به جای عمل ACTION_CALL
از اقدام قصد ACTION_DIAL
استفاده کنید. ACTION_CALL
به مجوز زمان نصب CALL_PHONE
نیاز دارد که از نصب برنامه شما توسط دستگاههایی که نمیتوانند تماس برقرار کنند، مانند برخی تبلتها، جلوگیری میکند.
وقتی برنامه شما قطع شد، رسانه را متوقف کنید
اگر کاربر یک تماس تلفنی دریافت کرد یا زنگ هشدار پیکربندی شده توسط کاربر رخ داد، برنامه شما باید پخش رسانه را متوقف کند تا زمانی که برنامه شما فوکوس صوتی را دوباره به دست آورد.
برای پشتیبانی از این عملکرد، مجوز READ_PHONE_STATE
را اعلام نکنید. درعوض، کنترل کننده رویداد onAudioFocusChange()
را پیاده سازی کنید که زمانی که سیستم فوکوس صوتی خود را تغییر می دهد به طور خودکار اجرا می شود. درباره نحوه اجرای فوکوس صوتی بیشتر بیاموزید.
اسکن بارکدها
Android شامل پشتیبانی از Google Code Scanner API است که توسط سرویسهای Google Play پشتیبانی میشود، که به شما امکان میدهد بارکدها را بدون اعلام هیچ مجوز دوربین رمزگشایی کنید. این API به حفظ حریم خصوصی کاربر کمک میکند و این احتمال را کاهش میدهد که نیاز به ایجاد یک رابط کاربری سفارشی برای مورد استفاده اسکن بارکد خود داشته باشید.
API بارکد را اسکن می کند و فقط نتایج اسکن را به برنامه شما برمی گرداند. تصاویر در دستگاه پردازش میشوند و Google هیچ داده یا نتایج اسکنی را ذخیره نمیکند.
اگر برنامه شما نیاز به پشتیبانی از موارد استفاده پیچیده یا قالبهای بارکد دارد، یا اگر به یک رابط کاربری سفارشی نیاز دارد، به جای آن از API اسکن بارکد ML Kit استفاده کنید.
بازنشانی مجوزهای استفاده نشده
اندروید راههای متعددی را برای بازنشانی مجوزهای زمان اجرا استفاده نشده به حالت پیشفرض و رد شده ارائه میکند.
راهنمای طراحی را بخوانید.
درخواست مجوزهای زمان اجرا
هنگامی که ارزیابی کردید که برنامه شما نیاز به اعلام و درخواست مجوزهای زمان اجرا دارد، برای انجام این کار یک گردش کاری خاص را دنبال کنید.
راهنمای طراحی را بخوانید.
توضیح دهید که چرا برنامه شما به مجوز نیاز دارد
استفاده از requestPermissions()
یک گفتگو را نشان می دهد که نشان می دهد برنامه شما می خواهد از کدام مجوزها استفاده کند اما دلیل آن را توضیح نمی دهد، که ممکن است برای کاربر گیج کننده باشد.
برای جزئیات بیشتر و توصیههایی درباره نحوه و زمان نمایش این گفتگو، راهنمای طراحی را بخوانید.
رسیدگی به رد مجوزها
برنامه شما باید به کاربران کمک کند تا پیامدهای رد کردن مجوز را قبل و بعد از اینکه انجام دهند را درک کنند.
راهنمای طراحی را بخوانید.