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