From 6a3a763e685e1f39b3297200bfdb32215967c4b1 Mon Sep 17 00:00:00 2001
From: JLChen <551775569@qq.com>
Date: 星期五, 18 六月 2021 17:51:47 +0800
Subject: [PATCH] 2021-6-18 1.光感距离和光感亮度,自动操作代码

---
 PX30SmatekAPI/PX30SmatekAPI/.idea/jarRepositories.xml                                             |   25 ++++++++
 PX30SmatekAPI/PX30SmatekAPI/.idea/gradle.xml                                                      |   14 +++-
 PX30SmatekAPI/PX30SmatekAPI/.idea/vcs.xml                                                         |    6 ++
 PX30SmatekAPI/PX30SmatekAPI/app/src/main/AndroidManifest.xml                                      |    7 ++
 PX30SmatekAPI/PX30SmatekAPI/.idea/compiler.xml                                                    |    6 ++
 PX30SmatekAPI/PX30SmatekAPI/app/src/main/java/com/smatek/px30smatekapi/MySensorEventListener.java |    4 +
 PX30SmatekAPI/PX30SmatekAPI/.idea/misc.xml                                                        |    2 
 PX30SmatekAPI/PX30SmatekAPI/app/src/main/java/com/smatek/px30smatekapi/MyBroadcastReceiver.java   |   29 +++++++++
 PX30SmatekAPI/PX30SmatekAPI/app/src/main/java/com/smatek/px30smatekapi/MainActivity.java          |   78 +++++++++++++++++++++++++
 9 files changed, 165 insertions(+), 6 deletions(-)

diff --git a/PX30SmatekAPI/PX30SmatekAPI/.idea/compiler.xml b/PX30SmatekAPI/PX30SmatekAPI/.idea/compiler.xml
new file mode 100644
index 0000000..61a9130
--- /dev/null
+++ b/PX30SmatekAPI/PX30SmatekAPI/.idea/compiler.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="CompilerConfiguration">
+    <bytecodeTargetLevel target="1.8" />
+  </component>
+</project>
\ No newline at end of file
diff --git a/PX30SmatekAPI/PX30SmatekAPI/.idea/gradle.xml b/PX30SmatekAPI/PX30SmatekAPI/.idea/gradle.xml
index d291b3d..41871c2 100644
--- a/PX30SmatekAPI/PX30SmatekAPI/.idea/gradle.xml
+++ b/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>
diff --git a/PX30SmatekAPI/PX30SmatekAPI/.idea/jarRepositories.xml b/PX30SmatekAPI/PX30SmatekAPI/.idea/jarRepositories.xml
new file mode 100644
index 0000000..a5f05cd
--- /dev/null
+++ b/PX30SmatekAPI/PX30SmatekAPI/.idea/jarRepositories.xml
@@ -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>
\ No newline at end of file
diff --git a/PX30SmatekAPI/PX30SmatekAPI/.idea/misc.xml b/PX30SmatekAPI/PX30SmatekAPI/.idea/misc.xml
index dfd2c79..19aa6a5 100644
--- a/PX30SmatekAPI/PX30SmatekAPI/.idea/misc.xml
+++ b/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">
diff --git a/PX30SmatekAPI/PX30SmatekAPI/.idea/vcs.xml b/PX30SmatekAPI/PX30SmatekAPI/.idea/vcs.xml
new file mode 100644
index 0000000..b2bdec2
--- /dev/null
+++ b/PX30SmatekAPI/PX30SmatekAPI/.idea/vcs.xml
@@ -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>
\ No newline at end of file
diff --git a/PX30SmatekAPI/PX30SmatekAPI/app/src/main/AndroidManifest.xml b/PX30SmatekAPI/PX30SmatekAPI/app/src/main/AndroidManifest.xml
index 6e3e070..96366f9 100644
--- a/PX30SmatekAPI/PX30SmatekAPI/app/src/main/AndroidManifest.xml
+++ b/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>
\ No newline at end of file
diff --git a/PX30SmatekAPI/PX30SmatekAPI/app/src/main/java/com/smatek/px30smatekapi/MainActivity.java b/PX30SmatekAPI/PX30SmatekAPI/app/src/main/java/com/smatek/px30smatekapi/MainActivity.java
index 15a582f..a191fff 100644
--- a/PX30SmatekAPI/PX30SmatekAPI/app/src/main/java/com/smatek/px30smatekapi/MainActivity.java
+++ b/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){
+        }
+    }
 }
+
diff --git a/PX30SmatekAPI/PX30SmatekAPI/app/src/main/java/com/smatek/px30smatekapi/MyBroadcastReceiver.java b/PX30SmatekAPI/PX30SmatekAPI/app/src/main/java/com/smatek/px30smatekapi/MyBroadcastReceiver.java
new file mode 100644
index 0000000..07b57c0
--- /dev/null
+++ b/PX30SmatekAPI/PX30SmatekAPI/app/src/main/java/com/smatek/px30smatekapi/MyBroadcastReceiver.java
@@ -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);
+
+                }
+
+
+            }
+
+        }
+
+
+
+    }
+}
diff --git a/PX30SmatekAPI/PX30SmatekAPI/app/src/main/java/com/smatek/px30smatekapi/MySensorEventListener.java b/PX30SmatekAPI/PX30SmatekAPI/app/src/main/java/com/smatek/px30smatekapi/MySensorEventListener.java
new file mode 100644
index 0000000..abfd1d6
--- /dev/null
+++ b/PX30SmatekAPI/PX30SmatekAPI/app/src/main/java/com/smatek/px30smatekapi/MySensorEventListener.java
@@ -0,0 +1,4 @@
+package com.smatek.px30smatekapi;
+
+public class MySensorEventListener {
+}

--
Gitblit v1.8.0