JLChen
2021-06-18 6a3a763e685e1f39b3297200bfdb32215967c4b1
2021-6-18 1.光感距离和光感亮度,自动操作代码
5个文件已添加
4个文件已修改
171 ■■■■■ 已修改文件
PX30SmatekAPI/PX30SmatekAPI/.idea/compiler.xml 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
PX30SmatekAPI/PX30SmatekAPI/.idea/gradle.xml 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
PX30SmatekAPI/PX30SmatekAPI/.idea/jarRepositories.xml 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
PX30SmatekAPI/PX30SmatekAPI/.idea/misc.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
PX30SmatekAPI/PX30SmatekAPI/.idea/vcs.xml 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
PX30SmatekAPI/PX30SmatekAPI/app/src/main/AndroidManifest.xml 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
PX30SmatekAPI/PX30SmatekAPI/app/src/main/java/com/smatek/px30smatekapi/MainActivity.java 78 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
PX30SmatekAPI/PX30SmatekAPI/app/src/main/java/com/smatek/px30smatekapi/MyBroadcastReceiver.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
PX30SmatekAPI/PX30SmatekAPI/app/src/main/java/com/smatek/px30smatekapi/MySensorEventListener.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
PX30SmatekAPI/PX30SmatekAPI/.idea/compiler.xml
New file
@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
  <component name="CompilerConfiguration">
    <bytecodeTargetLevel target="1.8" />
  </component>
</project>
PX30SmatekAPI/PX30SmatekAPI/.idea/gradle.xml
@@ -1,15 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
  <component name="GradleMigrationSettings" migrationVersion="1" />
  <component name="GradleSettings">
    <option name="linkedExternalProjectsSettings">
      <GradleProjectSettings>
        <compositeConfiguration>
          <compositeBuild compositeDefinitionSource="SCRIPT" />
        </compositeConfiguration>
        <option name="delegatedBuild" value="false" />
        <option name="testRunner" value="PLATFORM" />
        <option name="distributionType" value="DEFAULT_WRAPPED" />
        <option name="externalProjectPath" value="$PROJECT_DIR$" />
        <option name="modules">
          <set>
            <option value="$PROJECT_DIR$" />
            <option value="$PROJECT_DIR$/app" />
          </set>
        </option>
        <option name="resolveModulePerSourceSet" value="false" />
        <option name="testRunner" value="PLATFORM" />
        <option name="useQualifiedModuleNames" value="true" />
      </GradleProjectSettings>
    </option>
  </component>
PX30SmatekAPI/PX30SmatekAPI/.idea/jarRepositories.xml
New file
@@ -0,0 +1,25 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
  <component name="RemoteRepositoriesConfiguration">
    <remote-repository>
      <option name="id" value="central" />
      <option name="name" value="Maven Central repository" />
      <option name="url" value="https://repo1.maven.org/maven2" />
    </remote-repository>
    <remote-repository>
      <option name="id" value="jboss.community" />
      <option name="name" value="JBoss Community repository" />
      <option name="url" value="https://repository.jboss.org/nexus/content/repositories/public/" />
    </remote-repository>
    <remote-repository>
      <option name="id" value="BintrayJCenter" />
      <option name="name" value="BintrayJCenter" />
      <option name="url" value="https://jcenter.bintray.com/" />
    </remote-repository>
    <remote-repository>
      <option name="id" value="Google" />
      <option name="name" value="Google" />
      <option name="url" value="https://dl.google.com/dl/android/maven2/" />
    </remote-repository>
  </component>
</project>
PX30SmatekAPI/PX30SmatekAPI/.idea/misc.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
  <component name="ProjectRootManager" version="2" languageLevel="JDK_1_7" project-jdk-name="JDK" project-jdk-type="JavaSDK">
  <component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" project-jdk-name="JDK" project-jdk-type="JavaSDK">
    <output url="file://$PROJECT_DIR$/build/classes" />
  </component>
  <component name="ProjectType">
PX30SmatekAPI/PX30SmatekAPI/.idea/vcs.xml
New file
@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
  <component name="VcsDirectoryMappings">
    <mapping directory="$PROJECT_DIR$/../.." vcs="Git" />
  </component>
</project>
PX30SmatekAPI/PX30SmatekAPI/app/src/main/AndroidManifest.xml
@@ -16,6 +16,13 @@
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <receiver android:name=".MyBroadcastReceiver" >
            <intent-filter >
                <action android:name="com.smatek.node.change.state"/>
            </intent-filter>
        </receiver>
    </application>
</manifest>
PX30SmatekAPI/PX30SmatekAPI/app/src/main/java/com/smatek/px30smatekapi/MainActivity.java
@@ -4,6 +4,10 @@
import android.app.SmatekManager;
import android.content.Context;
import android.content.Intent;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.media.AudioManager;
import android.os.Build;
import android.os.SystemClock;
@@ -26,6 +30,8 @@
import com.smatek.px30smatekapi.utils.EthernetUtils;
import java.lang.reflect.Method;
import static android.content.ContentValues.TAG;
public class MainActivity extends AppCompatActivity implements View.OnClickListener, SeekBar.OnSeekBarChangeListener {
@@ -53,6 +59,10 @@
    private static String TAG = "MainActivity";
    private MyISmatekListener myISmatekListener;
    private SensorManager mSensorManager;
    private MySensorEventListener  sensorEventListener;//光线距离传感器
    private int screenBrightness = 100;
    @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN_MR2)
    @Override
@@ -63,6 +73,13 @@
        smatekManager = (SmatekManager) getSystemService("smatek");
        myISmatekListener = new MyISmatekListener();
        smatekManager.addSmatekListener(myISmatekListener);
        //光线距离传感器
        mSensorManager = (SensorManager)this.getSystemService(this.SENSOR_SERVICE);
        sensorEventListener = new MySensorEventListener();
        Sensor als = mSensorManager.getDefaultSensor(Sensor.TYPE_LIGHT);
        mSensorManager.registerListener(sensorEventListener, als,SensorManager.SENSOR_DELAY_NORMAL);
        Sensor ps = mSensorManager.getDefaultSensor(Sensor.TYPE_PROXIMITY);
        mSensorManager.registerListener(sensorEventListener, ps,SensorManager.SENSOR_DELAY_NORMAL);
    }
@@ -298,6 +315,7 @@
                smatekManager.setLcdBlackLight(true);
                break;
            case R.id.btn_close_back_light:
//                isScreenClose = true;
                smatekManager.setLcdBlackLight(false);
                break;
            case R.id.btn_statusBar_show:
@@ -392,6 +410,7 @@
                break;
            case R.id.btn_screen:
                isScreenClose = true;
                smatekManager.openOrCloseScreen(true);
                break;
            case R.id.btn_screen_open:
@@ -566,7 +585,7 @@
        @Override
        public void onKeyEvent(int i, int i1) {
            Log.e(TAG, " i :" + i + " i1 :" + i1);
            Log.e(TAG, " 小板事件Key i :" + i + " i1 :" + i1);
        }
        @Override
@@ -584,4 +603,61 @@
        }
    }
    boolean isScreenClose = false;
    //检测光感距离小于30cm,小于如果屏幕关闭则重新打开
    private void checkWakeUpScreen(float mPROXIMITY){
        if((65535.0 - mPROXIMITY) < 30){
            Log.e(TAG, "小板 检测光感距离小于30");
            //光感距离小于30cm
            if(isScreenClose){
                isScreenClose = false;
                //打开屏幕背光
                Log.e(TAG, "小板 重新打开屏幕");
                smatekManager.openOrCloseScreen(false);
            }
        }
    }
    long setTime = 0;
    //自动调节亮度
    private void autoSetScreenBrightness(float mLIGHT){
        long timecurrentTimeMillis = System.currentTimeMillis();
        if((timecurrentTimeMillis - setTime) < 200) return;
        //每200ms改变一次
        setTime = timecurrentTimeMillis;
        double percent = 1 - (mLIGHT / 9535.0);
        screenBrightness = (int)(percent * 255);
        if(screenBrightness > 255){
            screenBrightness = 255;
        }
        if(screenBrightness < 0){
            screenBrightness = 0;
        }
        Log.e(TAG, "小板 自动调节亮度:"+screenBrightness);
        smatekManager.setBrightness(screenBrightness);
    }
    private final class MySensorEventListener implements SensorEventListener {
        @Override
        public void onSensorChanged(SensorEvent event) {
            if(event.sensor.getType() == Sensor.TYPE_LIGHT) {
                Log.e(TAG, "小板 光感亮度 values = " + event.values[0]);
                autoSetScreenBrightness(event.values[0]);
            } else if (event.sensor.getType() == Sensor.TYPE_PROXIMITY){
                Log.e(TAG, "小板 光感距离 values = " +event.values[0]);
                checkWakeUpScreen(event.values[0]);
            }
        }
        @Override
        public void onAccuracyChanged(Sensor sensor, int accuracy){
        }
    }
}
PX30SmatekAPI/PX30SmatekAPI/app/src/main/java/com/smatek/px30smatekapi/MyBroadcastReceiver.java
New file
@@ -0,0 +1,29 @@
package com.smatek.px30smatekapi;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.util.Log;
public class MyBroadcastReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        String action = intent.getAction();
        if(action!=null && action.equals("com.smatek.node.change.state")){
            String node_path = intent.getStringExtra("node_path");
            if(node_path!=null){
                if(node_path.equals("sys/class/switch/keyc1_check/state")){
                    int stateValue = intent.getIntExtra("state_value", -1);
                    Log.i("HDLMyBroadcastReceiver","小板开关事件 stateValue# :"+stateValue);
                }
            }
        }
    }
}
PX30SmatekAPI/PX30SmatekAPI/app/src/main/java/com/smatek/px30smatekapi/MySensorEventListener.java
New file
@@ -0,0 +1,4 @@
package com.smatek.px30smatekapi;
public class MySensorEventListener {
}