البرمجة

كيفية الكشف عن وضع الانتظار للتطبيقات في Android M+

للتحقق مما إذا كانت التطبيق قد دخل أو خرج من وضع الانتظار في Android M فما فوق، يمكنك استخدام الوظائف التالية:

  1. isAppIdleMode(): تحقق مما إذا كان التطبيق قد دخل في وضع الانتظار (App Standby Mode) أو لا.

  2. isDeviceIdleMode(): تحقق مما إذا كان الجهاز قد دخل في وضع الانتظار (Doze Mode) أو لا.

للقيام بذلك، يجب عليك استخدام UsageStatsManager وPowerManager معاً. هناك خطوات يجب اتباعها لاستخدام هاتين الوظيفتين:

  1. إضافة الأذونات إلى ملف AndroidManifest.xml:
xml
<uses-permission android:name="android.permission.PACKAGE_USAGE_STATS" />
  1. التحقق مما إذا كانت الأذونة ممنوحة:
java
private boolean isPermissionGranted() { AppOpsManager appOps = (AppOpsManager) getSystemService(Context.APP_OPS_SERVICE); int mode = appOps.checkOpNoThrow(AppOpsManager.OPSTR_GET_USAGE_STATS, android.os.Process.myUid(), getPackageName()); return mode == AppOpsManager.MODE_ALLOWED; }
  1. طلب الأذن إذا لم تكن ممنوحة:
java
private void requestPermission() { startActivity(new Intent(Settings.ACTION_USAGE_ACCESS_SETTINGS)); }
  1. استخدام UsageStatsManager وPowerManager:
java
private boolean isAppIdle() { UsageStatsManager usageStatsManager = (UsageStatsManager) getSystemService(Context.USAGE_STATS_SERVICE); long time = System.currentTimeMillis(); List stats = usageStatsManager.queryUsageStats(UsageStatsManager.INTERVAL_DAILY, time - 1000 * 10, time); return stats.size() == 0; } private boolean isDeviceIdle() { PowerManager powerManager = (PowerManager) getSystemService(Context.POWER_SERVICE); return powerManager.isDeviceIdleMode(); }
  1. الاستفسار عن وضع الانتظار:
java
if (isAppIdle()) { // التطبيق في وضع الانتظار } else { // التطبيق غير في وضع الانتظار } if (isDeviceIdle()) { // الجهاز في وضع الانتظار } else { // الجهاز غير في وضع الانتظار }

من المهم أن تلاحظ أنه بعد تمكين الأذن للوصول إلى الإحصائيات، قد تحتاج إلى إعادة تشغيل التطبيق لتتمكن من استخدام الوظائف السابقة.

المزيد من المعلومات

بالطبع! يمكنك استخدام الأمور التالية لمزيد من المعلومات حول وضع الانتظار للتطبيقات في Android M وما بعدها:

  1. UsageStatsManager: يتيح لك الوصول إلى إحصائيات الاستخدام للتطبيقات، بما في ذلك معرفة ما إذا كانت التطبيقات قد دخلت وخرجت من وضع الانتظار.

  2. PowerManager: يسمح لك بالتحقق مما إذا كان الجهاز قد دخل في وضع الانتظار (Doze Mode) أو لا.

  3. AppOpsManager: يمكن استخدامه للتحقق من حالة أذونات النظام، مثل الوصول إلى إحصائيات الاستخدام (PACKAGE_USAGE_STATS) التي تحتاجها لاستخدام UsageStatsManager.

  4. الأذونات: يجب أن تكون قد حصلت على أذن android.permission.PACKAGE_USAGE_STATS لاستخدام UsageStatsManager.

  5. Broadcast Receiver: يمكنك استخدامه للاستماع إلى تغييرات في وضع الانتظار باستخدام الفعل android.os.action.DEVICE_IDLE_MODE_CHANGED.

  6. مشاكل محتملة: قد تحتاج إلى إعادة تشغيل التطبيق بعد تمكين الأذن للوصول إلى إحصائيات الاستخدام.

  7. تطبيق adb: يمكنك استخدام أوامر adb لإجبار التطبيق على دخول وخروج من وضع الانتظار، لكن تلك الأوامر قد لا تتعامل بشكل صحيح مع جميع الأجهزة والإصدارات.

  8. وضع الانتظار الذكي (Doze Mode) ووضع الانتظار للتطبيقات (App Standby Mode): يتميز كل منهما بسلوك مختلف وقد تحتاج إلى استخدام مختلف الطرق للتحقق من دخول وخروج التطبيق من كل وضع.

  9. استخدام الوظائف بشكل متكرر: يمكن استخدام الوظائف المذكورة بشكل دوري لمعرفة حالة وضع الانتظار للتطبيق والجهاز.

من المهم أن تضع في اعتبارك أنه يجب على التطبيقات التي تستخدم هذه الوظائف توجيه المستخدمين بشكل مناسب حول أي تأثير قد يكون لوضع الانتظار على تجربة استخدام التطبيق.

مقالات ذات صلة

زر الذهاب إلى الأعلى

هذا المحتوى محمي من النسخ لمشاركته يرجى استعمال أزرار المشاركة السريعة أو تسخ الرابط !!