تعطيل مستشعر الضوء أثناء الاتصال - Android

StackOverflow https://stackoverflow.com/questions/4257265

  •  27-09-2019
  •  | 
  •  

سؤال

عندما تتحدث على الهاتف في Android ، يعمل مستشعر الضوء. إذا قمت بتغطية الزاوية العلوية اليسرى من الشاشة ، فإن الشاشة تتحول إلى اللون الأسود ولا يمكنك رؤية أي شيء.

أود إلغاء هذه الميزة وحاولت العمل مع أجهزة استشعار Android و ال مستشعر الضوء لكن هذا لا يعمل.

هذا هو الكود الخاص بي:

 senMgrLight=(SensorManager)getSystemService(Context.SENSOR_SERVICE);
    senMgrLight.registerListener(onSensorListener,
            senMgrLight.getDefaultSensor(Sensor.TYPE_LIGHT),
                SensorManager.SENSOR_DELAY_FASTEST);

شكرًا.

هل كانت مفيدة؟

المحلول

المستشعر الذي تحتاج إلى العمل معه هو مستشعر القرب ، جرب هذا ، سيعلمك ذلك ما إذا كان المستشعر مخفيًا أم لا (وهو يعمل أثناء مكالمة)

   SensorManager sm = (SensorManager)getSystemService(Context.SENSOR_SERVICE);
        sm.registerListener(new SensorEventListener() {

            @Override
            public void onSensorChanged(SensorEvent event) {
                Log.i(TAG,"sensor: " + event.sensor.getName() + ", values: " + Arrays.toString(event.values));

            }

            @Override
            public void onAccuracyChanged(Sensor sensor, int accuracy) {
                Log.i(TAG,"accuracy change: " + sensor + ", accuracy: " + accuracy);

            }
        }, sm.getDefaultSensor(Sensor.TYPE_PROXIMITY),SensorManager.SENSOR_DELAY_FASTEST);

نصائح أخرى

أود استخدام الفصل Settings.System لقراءة SCREEN_BRIGHTNESS و ال SCREEN_BRIGHTNESS_MODE عبر getint () قبل إجراء المكالمة. ثم أود تعيين قيم جديدة عبر setInt () ، وهي 255 من أجل السطوع و SCREEN_BRIGHTNESS_MODE_MANUAL بالنسبة للوضع - الذي يجب أن يعطي سطوع ثابت بكمية أقصى.

بعد تعليق المكالمة ، يمكنك استعادة القيم القديمة التي قمت بتخزينها قبل تغيير القيم عبر setInt () حتى يحصل المستخدم على إعداداته الأولية. :-)

لا تنس أن الوضع متاح فقط لنظام Android 2.2 وأعلى (مستوى API 8) ، لذلك سيتعين عليك استخدام الانعكاس إذا كنت ترغب في استهداف إصدارات Android القديمة أيضًا. وبالطبع ستحتاج بالتأكيد أذونات لكتابة إعدادات النظام.

يتم التحكم في الشاشة بواسطة مستشعر الوكيل ، وليس مستشعر الضوء. يمكنك إزالة سجل مستشعر الوكيل في تطبيق الهاتف

أراهن أنك ستستمتع بهذا التطبيق بعد ذلك !!
القرب من المستشعر

يعتبر
CVS@2600HERTZ

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top