亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Android編程使用光線傳感器獲取光線強弱的方法【LightSensorManager封裝類】

 更新時間:2017年11月02日 10:08:27   作者:阿飛__  
這篇文章主要介紹了Android編程使用光線傳感器獲取光線強弱的方法,結(jié)合實例形式分析了Android光線傳感器管理封裝類LightSensorManager的具體實現(xiàn)技巧,需要的朋友可以參考下

本文實例講述了Android編程使用光線傳感器獲取光線強弱的方法。分享給大家供大家參考,具體如下:

在Android開發(fā)中,有時我們需要獲知設(shè)備所在環(huán)境的光線強弱情況,當(dāng)然這需要我們設(shè)備擁有光線傳感器。通常我們手機(jī)的屏幕自動亮度都是用光線傳感器來實現(xiàn)的。該傳感器在前置攝像頭附近,此外,還有一個距離傳感器。這里我們主要講解如何使用Android手機(jī)的光線傳感器。

下面是我簡單封裝的一個光線傳感器管理類,主要提供了3個方法:

1.start():啟動,在獲取光照強度前調(diào)用。
2.stop():停止,在不再需要獲取光照強度后調(diào)用。
3.getLux():獲取光照強度,單位為勒克斯(lux)。

如果你需要額外的一些方法,可以根據(jù)返回的光照強度自行添加。下面是整個LightSensorManager類

import android.content.Context;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.util.Log;
public class LightSensorManager {
  private static final boolean DEBUG = true;
  private static final String TAG = "LightSensor";
  private static LightSensorManager instance;
  private SensorManager mSensorManager;
  private LightSensorListener mLightSensorListener;
  private boolean mHasStarted = false;
  private LightSensorManager() {
  }
  public static LightSensorManager getInstance() {
    if (instance == null) {
      instance = new LightSensorManager();
    }
    return instance;
  }
  public void start(Context context) {
    if (mHasStarted) {
      return;
    }
    mHasStarted = true;
    mSensorManager = (SensorManager) context.getApplicationContext().getSystemService(Context.SENSOR_SERVICE);
    Sensor lightSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_LIGHT); // 獲取光線傳感器
    if (lightSensor != null) { // 光線傳感器存在時
      mLightSensorListener = new LightSensorListener();
      mSensorManager.registerListener(mLightSensorListener, lightSensor, SensorManager.SENSOR_DELAY_NORMAL); // 注冊事件監(jiān)聽
    }
  }
  public void stop() {
    if (!mHasStarted || mSensorManager == null) {
      return;
    }
    mHasStarted = false;
    mSensorManager.unregisterListener(mLightSensorListener);
  }
  /**
   * 獲取光線強度
   */
  public float getLux() {
    if (mLightSensorListener != null) {
      return mLightSensorListener.lux;
    }
    return -1.0f; // 默認(rèn)返回-1,表示設(shè)備無光線傳感器或者為調(diào)用start()方法
  }
  private class LightSensorListener implements SensorEventListener {
    private float lux; // 光線強度
    public void onAccuracyChanged(Sensor sensor, int accuracy) {
    }
    public void onSensorChanged(SensorEvent event) {
      if (event.sensor.getType() == Sensor.TYPE_LIGHT) {
        // 獲取光線強度
        lux = event.values[0];
        if (DEBUG) {
          Log.d(TAG, "lux : " + lux);
        }
      }
    }
  }
}

對于這個光線強度的值。越暗數(shù)值越低,最低應(yīng)該是0,在白天室內(nèi)大概有300左右,僅供參考,不知道不同的設(shè)備會不會存在一定誤差。

調(diào)用程序就不貼了,通過log就可以很直接的看得到數(shù)據(jù)了。這個類在我的自定義相機(jī)里自動調(diào)節(jié)曝光程度使用到了,效果還是有的。

更多關(guān)于Android相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Android開發(fā)入門與進(jìn)階教程》、《Android視圖View技巧總結(jié)》、《Android編程之a(chǎn)ctivity操作技巧總結(jié)》、《Android操作SQLite數(shù)據(jù)庫技巧總結(jié)》、《Android操作json格式數(shù)據(jù)技巧總結(jié)》、《Android資源操作技巧匯總》及《Android控件用法總結(jié)

希望本文所述對大家Android程序設(shè)計有所幫助。

相關(guān)文章

  • Android語音識別技術(shù)詳解及實例代碼

    Android語音識別技術(shù)詳解及實例代碼

    這篇文章主要介紹了Android語音識別技術(shù)的相關(guān)資料,并附實例代碼及實例實現(xiàn)效果圖,需要的朋友可以參考下
    2016-09-09
  • Android最簡單的限制輸入方法(只包含數(shù)字、字母和符號)

    Android最簡單的限制輸入方法(只包含數(shù)字、字母和符號)

    這篇文章主要給大家介紹了關(guān)于Android最簡單的限制輸入的實現(xiàn)方法,限制輸入框只能輸入數(shù)字、字母和符號,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起看看 吧
    2018-11-11
  • AndroidQ(10)黑暗模式適配的實現(xiàn)

    AndroidQ(10)黑暗模式適配的實現(xiàn)

    這篇文章主要介紹了AndroidQ(10)黑暗模式適配的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06
  • Android ListView實現(xiàn)無限循環(huán)滾動

    Android ListView實現(xiàn)無限循環(huán)滾動

    這篇文章主要為大家詳細(xì)介紹了Android ListView實現(xiàn)無限循環(huán)滾動,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-06-06
  • Flutter開發(fā)setState能否在build中直接調(diào)用詳解

    Flutter開發(fā)setState能否在build中直接調(diào)用詳解

    這篇文章主要為大家介紹了Flutter開發(fā)setState能否在build中直接調(diào)用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-10-10
  • 解決Android7.0更新后無法安裝的問題

    解決Android7.0更新后無法安裝的問題

    項目中發(fā)現(xiàn)在自動更新功能的時候,下載好了apk的文件后在android7.0系統(tǒng)中不能自動跳到安裝界面,后來搜索了一番解決了問題,但感覺沒有描述清楚,所以補充一下。
    2017-12-12
  • Android繪制鐘表的方法

    Android繪制鐘表的方法

    這篇文章主要為大家詳細(xì)介紹了Android繪制鐘表的方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-09-09
  • Android編程判斷網(wǎng)絡(luò)是否可用及調(diào)用系統(tǒng)設(shè)置項的方法

    Android編程判斷網(wǎng)絡(luò)是否可用及調(diào)用系統(tǒng)設(shè)置項的方法

    這篇文章主要介紹了Android編程判斷網(wǎng)絡(luò)是否可用及調(diào)用系統(tǒng)設(shè)置項的方法,涉及Android針對網(wǎng)絡(luò)連接的判定及屬性設(shè)置的調(diào)用,需要的朋友可以參考下
    2016-03-03
  • Android 實現(xiàn)伸縮布局效果示例代碼

    Android 實現(xiàn)伸縮布局效果示例代碼

    這篇文章主要介紹了Android 實現(xiàn)伸縮布局效果的示例代碼,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2017-01-01
  • Android自定義滑動刪除效果的實現(xiàn)代碼

    Android自定義滑動刪除效果的實現(xiàn)代碼

    這篇文章將從現(xiàn)有 Android 滑動刪除的痛點,到搭建好一個基本的框架,到最終提供一份完整的 Demo為止,爭取為讀者提供最大的可定制化,需要的朋友可以參考下
    2018-03-03

最新評論