استفاده از shouldShowRequestPermissionRationale در پرمیشن
بنده با یک چالش جدید در پرمیشن رو به رو شدم و اونم چیزی نیست جز shouldShowRequestPermissionRationale!
تا قبل از این ازش استفاده نمیکردم ولی باید استفاده کنم. کدی که مینویسم در نهایت برای همه جا قابل استفاده هست.
وقتی برای اولین بار باکس پرمیشن نشون داده میشه این متد false میده. توی این باکس یه تیکی هست که میگه دیگه این پرمیشن رو نشون نده. اگر کاربر این تیک رو بزنه دیگه باکس پرمیشن رو نشون نمیده و باید از طریق ستینگ پرمیشن رو enable کنه. در این حالت این متد false میده. ولی اگر این تیک رو نزنه این متد true میده.
این مطلب به صورت فلوچارت توی عکس زیر اومده:
برای پرمیشن یه کلاس util نوشتم و خیلی خوب و کامله و از قبلی بهتره.
چند تا پرمیشن به صورت آرایه رو هم ساپورت میکنه.
نکته ای که داشت و چند روز ازم وقت گرفت این بود که باید برای هر پرمیشن متدهای checkSelfPermission و shouldShowRequestPermissionRationale رو صدا کرد و نتیجه رو ذخیره کرد.
قبلا من یه حلقه for مینوشتم و توی حلقه این متدها رو فراخونی میکردم که خب برای checkSelfPermission جواب میده ولی برای shouldShowRequestPermissionRationale نه.
منظورم از ذخیره کردن اینه که نتیجه رو با یک متغیر boolean که پیشفرضش false هست or میکنم. (چون false توی or تاثیر خاصی نداره)
این کد رو با الهام از اینجا نوشتم