مؤشرات مستوى بطارية البلوتوث تأتي في النهاية إلى Android

ميزة مفيدة حقًا لأولئك منا مع سماعات البلوتوث والأجهزة الأخرى بدأت أخيرًا في الوصول إلى AOSP: مؤشرات مستوى بطارية Bluetooth. هذا يعني أن مستخدمي Google وموتورولا وسوني وغيرها من الأجهزة التي تحتوي على برامج أندرويد قريبة من الأسهم يجب أن يكونوا قادرين على معرفة مستوى البطارية في أجهزة Bluetooth المتصلة بهم دون الحاجة إلى تطبيق تابع لجهة خارجية. لا يوجد أي تحديد دقيق لكيفية ظهور مؤشر مستوى بطارية Bluetooth هذا في حالته النهائية ، لكن وجود واجهة برمجة التطبيقات الجديدة هذه في AOSP يعني أنه يمكن للمطورين تطبيق مؤشرات بطارية Bluetooth كما يحلو لهم.

الآن ، بالنسبة لأولئك منكم على بعض ROMs المخصصة (مثل LineageOS) أو مع أجهزة من بعض الشركات المصنعة (مثل تلك من Samsung أو LG أو Huawei أو OnePlus أو Xiaomi) هذه ليست ميزة جديدة. تم دعم مؤشرات مستوى البطارية لأجهزة Bluetooth المتصلة على العديد من الأقراص المضغوطة المخصصة والأجهزة المصنّعة لجهات خارجية منذ سنوات ، لكن هذه الميزة كانت مفقودة بشكل ملحوظ في مشروع Android Open Source Project (AOSP) ، مما يعني أن أي هاتف جوجل موجود في المخزون سوف البرامج الثابتة لا تدعم ذلك.

مؤشر مستوى بطارية Bluetooth من Samsung

مؤشر مستوى بطارية ون بلس البلوتوث

مؤشر مستوى بطارية Bluetooth من LG

يمكن للمستخدمين الذين لديهم أجهزة Bluetooth محظوظون بدرجة كافية لتوفير تطبيق مصاحب متوفر على متجر Google Play استرداد معلومات مستوى البطارية بهذه الطريقة ، ولكن هناك خيارات قليلة. حاول تطبيق شائع في متجر Play يسمى BatON إضافة هذه الميزة ، ولكنه محدود جدًا في نطاق الأجهزة التي يمكن أن يدعمها (بدون أي خطأ من جانبه) ويعرف أيضًا بأنه عربات التي تجرها الدواب بشكل كبير (حيث يبلغ العديد من المستخدمين عن تكرارها فصل بلوتوث).

بدلاً من الاعتماد على تطبيقات الطرف الثالث التي تعمل فقط مع جهاز Bluetooth واحد تملكه أو تدعم فقط حفنة من الأجهزة الموجودة هناك ، سيكون من الرائع أن تتدخل Google لتقديم ميزة متوفرة على أجهزة أخرى لـ سنوات. وأخيرا ، يبدو أنهم يفعلون ذلك تماما.


واجهات برمجة التطبيقات الخاصة بمستوى البطارية في Bluetooth في AOSP

قامت مجموعة الاهتمامات الخاصة Bluetooth (Bluetooth SIG) ، وهي الهيئة التي تشرف على معايير كل تكرار Bluetooth ، بتحديد خدمة البطارية (BAS) في GATT (خدمات السمات العامة) ، ولكن الأمر متروك لتقنية Bluetooth لدعم BAS. وفقًا لبعض الالتزامات الجديدة التي وجدناها أثناء البحث من خلال AOSP ، تستعد Google لإضافة واجهات برمجة تطبيقات جديدة "للحصول على مستوى بطارية الجهاز البعيد". على وجه الخصوص ، يذكرون الإضافات التالية إلى AOSP:

أضف واجهات برمجة التطبيقات (APIs) للحصول على مستوى بطارية الجهاز البعيد

  • أضف BluetoothDevice.getBatteryLevel () API لاستعادة معلومات مستوى البطارية في الجهاز البعيد
  • إضافة BluetoothDevice.ACTION_BATTERY_LEVEL_CHANGED نية لإعلام المستخدم أن مستوى بطارية الجهاز البعيد قد تغير
  • إضافة أساليب خدمة الواجهة الخلفية لـ BluetoothDevice.getBatteryLevel ()
  • أضف حقل مستوى البطارية في DeviceProperties باستخدام أدوات التلاعب والتثبيت
  • إضافة أسلوب updateBatteryLevel () في RemoteDevices
  • إضافة طريقة resetBatteryLevel () في RemoteDevices
  • إعادة تعيين مستوى البطارية للجهاز عندما يتم قطع اتصال الجهاز في aclStateChangeCallback () لضمان وجود نية BATTERY_LEVEL_CHANGED عند قيام الجهاز أولاً بالإبلاغ عن معلومات مستوى البطارية بعد الاتصال
  • إضافة اختبارات للتحديثبطارية المستوى () وإعادة ضبط البطارية ببطاقة المستوى ()

من هذا ، يمكننا أن نرى أن Google ستضيف طريقة جديدة في فئة BluetoothDevice تسمى getBatteryLevel () والتي ستسترجع مستوى البطارية الحالي لجهاز متصل عند الاتصال. وفقًا للشفرة المصدرية ، يُرجع ذلك قيمة تتراوح بين 0 و 100 (أو -1 إذا تم تعطيل Bluetooth ، أو أن الجهاز مفصول ، أو لا يدعم الإبلاغ عن مستوى بطاريته). وهذا يعني أنه من الممكن أن يتم عرض مستوى البطارية بطريقة أكثر إفادة من شريط بسيط. يمكن للمطور إظهار إشعار أو عنصر واجهة مستخدم مع النسبة المئوية بالضبط ، على سبيل المثال.

ولكن هذا ليس كل شيء ، سيتم إخطار أحد التطبيقات التي تشترك في ACTION_BATTERY_LEVEL_CHANGED بقصد البث عند تغير مستوى بطارية الجهاز المتصل. مع جهاز استقبال البث ، سيتم إعلام التطبيق الذي يستمع إلى التغييرات في حالة البطارية بجهاز Bluetooth المتصل عند تغير مستوى البطارية ، لذلك لن تكون هناك حاجة إلى تنفيذ خدمة اقتراع خلفية دائمة من أي نوع. يتم إرسال هذه القيمة كعدد صحيح بين 0 و 100٪ من خلال القصد الإضافي EXTRA_BATTERY_LEVEL ، ويمكن للتطبيق أن يفرق بين الأجهزة المتصلة عن طريق التصفية من خلال EXTRA_DEVICE.

حتى بعض الأجهزة التي ترسل معلومات البطارية بطريقتها الخاصة ، مثل Plantronics 'XEvent أو Apple's VSC ، سيتم دعمها أيضًا. هناك أيضًا عمل يتم تنفيذه على دعم الإبلاغ عن مستوى بطارية Bluetooth منخفض الطاقة (BLE) ، على الرغم من أن هذا مدرج على أنه "لا يمكن دمج" في الوقت الحالي.


ميزة ممكنة لنظام التشغيل Android 8.1؟

Android O يكاد يكون علينا. تم إصدار "معاينة المطور الرابع" مؤخرًا وكانت تهدف في الغالب إلى إصلاحات الأخطاء ، على الرغم من وجود بعض التعديلات الطفيفة على واجهة المستخدم هنا وهناك. ومع ذلك ، أعلنت Google أن معاينة المطور الثالثة تضم كافة واجهات برمجة تطبيقات Android O النهائية التي يمكن للمطورين استخدامها للاستعداد للإصدار التالي من Android. على هذا النحو ، هذا يعني أن واجهة برمجة التطبيقات الجديدة لإعداد تقارير مستوى البطارية Bluetooth المتصلة لن تشق طريقها إلى الإصدار الأول من Android O - Android 8.0.

ومع ذلك ، هذا لا يعني أنه لن يأتي. من الممكن أن تقدم Google واجهة برمجة التطبيقات هذه رسميًا (عند انتهائها فعليًا) مع الإصدار النهائي من Android 8.1. في الوقت نفسه ، قد يقررون دعم هذه الميزة من خلال مكتبة دعم Android ، مما يؤدي إلى نسخ Android السابقة. إذا انتهى الأمر بذلك ، فلن يضطر المستخدمون إلى الانتظار شهورًا للاستمتاع بمثل هذه الميزة (على الرغم من أننا نشجع المستخدمين دائمًا على تجربة أحد ROM المدمجة المخصصة المتوفرة في منتدياتنا الرائعة).

ومع ذلك ، يجب أن تكون هذه أخبارًا مثيرة لمشجعي برنامج الأسهم على هواتفهم. نأمل ألا تكون غيورًا على المستخدمين من Apple و Samsung و Huawei و LG وغيرها من الأجهزة مع هذه الميزة الرائعة التي كان يجب أن تكون متاحة في Android منذ وقت طويل. نظرًا لتدفق الدعم في الآونة الأخيرة للفكرة على Reddit ، نحن على يقين من أن هذه ستكون ميزة مرحب بها - عندما يتعلق الأمر في النهاية بنظام Android.