دسترسی استارت کردن اکتیویتی یا اینتنت از سرویس در اندروید +۱۰ – بیسیک۴اندروید
💡 در گذشته(اندروید های ۱۰ به پایین) براحتی از طریق سرویس(خارج از برنامه) اکتیویتی ها یا اینتنت های مختلف رو باز میکردیم، اما از اندروید ۱۰ به بالا این مورد نیاز به دسترسی ای داره که کاربر می بایست اون رو در تنظیمات گوشی خودش تایید کنه. در ادامه با نحوه گرفتن این دسترسی از کاربر در Basic4Android آشنا میشیم.
📖 توضیح بیشتر
نام این دسترسی در گوشی های مختلف متفاوت هست اما معمولا به “Display Over Other Apps” یا “نمایش از طریق برنامه های دیگر” معروف هست،
تصویری از این امکان در تنظیمات رو مشاهده کنید:
تا زمانی که این دسترسی از طرف کاربر صادر نشه برنامه اجازه ی باز کردن اکتیویتی یا هر Intent دیگه ای رو از سرویس نداره.
این دسترسی معمولاً برای اپلیکیشن هایی مثل تقویم، ساعت هشدار و… که نیاز دارند در زمان موعد یک اکتیویتی رو استارت کنند خیلی نیاز هست و خوشبختانه گوگل پلی هم با گذاشتن این دسترسی در این نوع برنامه ها مشکلی نداره.
اما با برنامه های سودجو که از طریق سرویس(ارسال جیسون) اقدام به تبلیغات پاپ آپ و… میکردند برخورد میکنه و اجازه ی قراردادن این دسترسی رو نمیده. بنابراین از اندروید ۱۰ به بالا امکان ارسال این نوع تبلیغات آزاردهنده برای کاربران وجود نداره.
✅ پیاده سازی
رویه پیاده سازی برای گرفتن دسترسی Display Over Other Apps در چند مرحله ی ساده انجام میشه:
۱- کلاس windo (موجود در سورس) رو به پروژه خودتون اضافه کنید
۲- یک دسترسی نیاز هست که به منیفست اضافه میکنیم
۳- در نهایت در قسمت activity_create یا هرجای دیگه کدهایی که برای بررسی صادر شدن یا نشدن این دسترسی و هدایت مستقیم کاربر به تنظیمات هست رو قرار میدیم
📎 همه ی این موارد در سورسی که در پایین قابل دانلود هست موجود می باشد.