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