From c3e3d6de61f7aa261bf5ff235ae3ccabacbc52b6 Mon Sep 17 00:00:00 2001 From: jieyao Date: Tue, 23 Sep 2025 09:09:47 +0800 Subject: [PATCH] =?UTF-8?q?2.9=E5=92=8C2.10=E4=B8=80=E5=B9=B6=E6=8F=90?= =?UTF-8?q?=E4=BA=A4=EF=BC=8C=202.9=EF=BC=9A=E6=B7=BB=E5=8A=A0=E4=BA=86?= =?UTF-8?q?=E5=88=9D=E5=A7=8B=E5=8C=96=E5=B1=8F=E5=B9=95=E6=96=B9=E5=90=91?= =?UTF-8?q?=202.10=EF=BC=9A=E6=B7=BB=E5=8A=A0=E4=BA=86init.json=EF=BC=8C?= =?UTF-8?q?=E8=BF=9B=E8=A1=8C=E5=88=9D=E5=A7=8B=E5=8C=96ip=E7=AD=89?= =?UTF-8?q?=EF=BC=8C=E4=BD=BF=E7=94=A8mt=E7=AE=A1=E7=90=86=E5=99=A8?= =?UTF-8?q?=E8=BF=9B=E8=A1=8C=E4=BF=AE=E6=94=B9=EF=BC=8C=E4=BB=8E=E8=80=8C?= =?UTF-8?q?=E5=AE=9E=E7=8E=B0=E5=8C=BB=E9=99=A2=E4=B8=8D=E7=94=A8=E9=85=8D?= =?UTF-8?q?=E7=BD=AEip?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/build.gradle | 4 +- app/src/main/assets/demo/index.html | 88 +++++++++++-- .../business/activity/MainActivity.java | 20 ++- .../activity/NetworkSettingActivity.java | 5 +- .../engine/entity/NetworkSetting.java | 9 ++ .../engine/impl/NetworkSettingEngine.java | 3 + .../res/layout/activity_setting_network.xml | 118 +++++++++++------- 7 files changed, 189 insertions(+), 58 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 07841c7..3122434 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -11,7 +11,7 @@ android { minSdk 28 targetSdk 28 versionCode 1 - versionName "2.8" + versionName "2.10" // 1.0 IDATA广播模式处理 // 1.1 霍尼韦尔的监听修改(扫描网站二维码跳出程序,监听失效,调整)、斑马PDA广播模式设置 @@ -43,6 +43,8 @@ android { // 3、根据官方文档,将code的判断进行修改,添加了一个网络错误的页面进行提示(并且添加了一个重新加载的按钮,执行webview重新加载) // 2.7 海康威视 mv-idp5204 适配广播模式;和之前的idp5102厂家code不一样 宿州市立医院-李德 // 2.8 编写一个通用的广播模式,action:chaoran.crtech.cn.pda.scan key:barcode + // 2.9 初始化屏幕方向 + // 2.10 再次添加了init.json文件,进行初始化ip等参数 testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" ndk { abiFilters 'armeabi-v7a' diff --git a/app/src/main/assets/demo/index.html b/app/src/main/assets/demo/index.html index fabf6aa..debdfd2 100644 --- a/app/src/main/assets/demo/index.html +++ b/app/src/main/assets/demo/index.html @@ -96,7 +96,24 @@ outline: -webkit-focus-ring-color auto 0px; } - + .radio-group { + display: flex; + padding: 10px; + } + .radio-group>span { + display: inline-block; + width: 110px; + min-width: 110px; + } + .radio-group .radio-group-box { + display: flex; + flex-wrap: wrap; /* 允许换行 */ + gap: 10px 20px; /* 垂直和水平间距 */ + width: 100%; + } + .radio-group .radio-group-box .radio-item { + width: calc(50% - 10px); + } @@ -118,13 +135,60 @@ -
- - +
+ 屏幕旋转 +
+ + + + +
-
- - +
+ 隐藏状态栏 +
+ + +
+
+
+ 默认屏幕方向 +
+ + + + +
@@ -143,8 +207,9 @@ document.getElementById('address').value = d.address; document.getElementById('port').value = d.port; document.getElementById('path').value = d.path; - document.getElementById('screen_rotation').value = d.screen_rotation; - document.getElementById('hide_bar').value = d.hide_bar; + document.querySelector('input[name="screen_rotation"][value="'+d.screen_rotation+'"]').checked = true; + document.querySelector('input[name="hide_bar"][value="'+d.hide_bar+'"]').checked = true; + document.querySelector('input[name="start_direction"][value="'+d.start_direction+'"]').checked = true; console.log("d_data_end_========================="); } } @@ -156,8 +221,9 @@ "address":document.getElementById('address').value, "port":document.getElementById('port').value, "path":document.getElementById('path').value, - "screen_rotation":document.getElementById('screen_rotation').value, - "hide_bar":document.getElementById('hide_bar').value + "screen_rotation":document.querySelector('input[name="screen_rotation"]:checked').value, + "hide_bar":document.querySelector('input[name="hide_bar"]:checked').value, + "start_direction":document.querySelector('input[name="start_direction"]:checked').value, }); window.NetworkSettingEngine.saveSetting(data); window.View.reload(); diff --git a/app/src/main/java/chaoran/business/activity/MainActivity.java b/app/src/main/java/chaoran/business/activity/MainActivity.java index f591b51..01511ce 100644 --- a/app/src/main/java/chaoran/business/activity/MainActivity.java +++ b/app/src/main/java/chaoran/business/activity/MainActivity.java @@ -70,6 +70,7 @@ public class MainActivity extends AppCompatActivity implements ResultListener{ public static int SCREEN_ROTATION = 3; // 屏幕旋转的设置 public static int hideBar = 0; // 屏幕旋转的设置 + public static int startDirection = 1; // 初始化屏幕方向 MyOrientationDetector myOrientationDetector; @@ -307,9 +308,21 @@ public class MainActivity extends AppCompatActivity implements ResultListener{ super.onResume(); if (adapter != null) { myOrientationDetector.disable(); + myOrientationDetector.enable(); adapter.stop2(); adapter.start(); } + int rotate = 1; + if (startDirection == 1) { + rotate = ActivityInfo.SCREEN_ORIENTATION_PORTRAIT; // 正竖屏 + }else if (startDirection == 2) { + rotate = ActivityInfo.SCREEN_ORIENTATION_REVERSE_PORTRAIT; // 倒竖屏 + }else if (startDirection == 3) { + rotate = ActivityInfo.SCREEN_ORIENTATION_REVERSE_LANDSCAPE; // 正横屏 + }else if (startDirection == 4) { + rotate = ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE; // 倒横屏 + } + this.setRequestedOrientation(rotate); } @Override @@ -342,6 +355,7 @@ public class MainActivity extends AppCompatActivity implements ResultListener{ vibrator.cancel(); } completionListener = null; + myOrientationDetector.disable(); } @Override @@ -370,8 +384,8 @@ public class MainActivity extends AppCompatActivity implements ResultListener{ Map map = null; if (port == -1) { try { -// String init = readInitFile(this); - String init = null; + String init = readInitFile(this); +// String init = null; if (init != null && init.length() > 0) { Gson gson = new Gson(); map = gson.fromJson(init, new TypeToken>(){}.getType()); @@ -383,6 +397,7 @@ public class MainActivity extends AppCompatActivity implements ResultListener{ initData.setPath(map.get("path").toString()); initData.setScreen_rotation(Integer.parseInt(map.getOrDefault("screen_rotation", "3").toString())); initData.setHide_bar(Integer.parseInt(map.getOrDefault("hide_bar", "0").toString())); + initData.setStart_direction(Integer.parseInt(map.getOrDefault("start_direction", "1").toString())); settingEngine.saveSetting(initData); spf = this.getSharedPreferences("crtech", Context.MODE_PRIVATE); port = initData.getPort(); @@ -402,6 +417,7 @@ public class MainActivity extends AppCompatActivity implements ResultListener{ String link = address.concat(":").concat(String.valueOf(port)).concat(path); SCREEN_ROTATION = spf.getInt("screen_rotation", 3); hideBar = spf.getInt("hide_bar", 0); + startDirection = spf.getInt("start_direction", 1); return link.startsWith("http://") ? link : "http://".concat(link); } diff --git a/app/src/main/java/chaoran/business/activity/NetworkSettingActivity.java b/app/src/main/java/chaoran/business/activity/NetworkSettingActivity.java index 8b1227c..a9c366a 100644 --- a/app/src/main/java/chaoran/business/activity/NetworkSettingActivity.java +++ b/app/src/main/java/chaoran/business/activity/NetworkSettingActivity.java @@ -19,7 +19,7 @@ import chaoran.business.R; public class NetworkSettingActivity extends AppCompatActivity { - private EditText address, path, port, screen_rotation, hide_bar; + private EditText address, path, port, screen_rotation, hide_bar,start_direction; private Button save, cancel; @Override @@ -37,6 +37,7 @@ public class NetworkSettingActivity extends AppCompatActivity { port = findViewById(R.id.port); screen_rotation = findViewById(R.id.screen_rotation); hide_bar = findViewById(R.id.hide_bar); + start_direction = findViewById(R.id.start_direction); save = findViewById(R.id.save); cancel = findViewById(R.id.cancel); SharedPreferences sharedPreferences = this.getSharedPreferences("crtech", Context.MODE_PRIVATE); @@ -45,6 +46,7 @@ public class NetworkSettingActivity extends AppCompatActivity { port.setText(String.valueOf(sharedPreferences.getInt("port", -1))); screen_rotation.setText(String.valueOf(sharedPreferences.getInt("screen_rotation", 3))); hide_bar.setText(String.valueOf(sharedPreferences.getInt("hide_bar", 0))); + start_direction.setText(String.valueOf(sharedPreferences.getInt("start_direction", 1))); cancel.setOnClickListener((e) -> this.finish()); save.setOnClickListener((e) -> saveSetting()); } @@ -56,6 +58,7 @@ public class NetworkSettingActivity extends AppCompatActivity { editor.putInt("port", Integer.parseInt(port.getText().toString().trim())); editor.putInt("screen_rotation", Integer.parseInt(screen_rotation.getText().toString().trim())); editor.putInt("hide_bar", Integer.parseInt(hide_bar.getText().toString().trim())); + editor.putInt("start_direction", Integer.parseInt(start_direction.getText().toString().trim())); editor.commit(); this.finish(); } diff --git a/app/src/main/java/chaoran/business/engine/entity/NetworkSetting.java b/app/src/main/java/chaoran/business/engine/entity/NetworkSetting.java index 47bc02f..2aeba5e 100644 --- a/app/src/main/java/chaoran/business/engine/entity/NetworkSetting.java +++ b/app/src/main/java/chaoran/business/engine/entity/NetworkSetting.java @@ -15,6 +15,7 @@ public class NetworkSetting extends Setting { private Integer screen_rotation; private Integer hide_bar; + private Integer start_direction; public String getAddress() { return address; @@ -55,4 +56,12 @@ public class NetworkSetting extends Setting { public void setHide_bar(Integer hide_bar) { this.hide_bar = hide_bar; } + + public Integer getStart_direction() { + return start_direction; + } + + public void setStart_direction(Integer start_direction) { + this.start_direction = start_direction; + } } \ No newline at end of file diff --git a/app/src/main/java/chaoran/business/engine/impl/NetworkSettingEngine.java b/app/src/main/java/chaoran/business/engine/impl/NetworkSettingEngine.java index fd79b18..b008b9f 100644 --- a/app/src/main/java/chaoran/business/engine/impl/NetworkSettingEngine.java +++ b/app/src/main/java/chaoran/business/engine/impl/NetworkSettingEngine.java @@ -46,6 +46,7 @@ public class NetworkSettingEngine implements SettingEngine { networkSetting.setPath(path); networkSetting.setScreen_rotation(screen_rotation); networkSetting.setHide_bar(spf.getInt("hide_bar", 0)); + networkSetting.setStart_direction(spf.getInt("start_direction", 0)); return networkSetting; } @@ -58,9 +59,11 @@ public class NetworkSettingEngine implements SettingEngine { editor.putInt("port", networkSetting.getPort()); editor.putInt("screen_rotation", networkSetting.getScreen_rotation()); editor.putInt("hide_bar", networkSetting.getHide_bar()); + editor.putInt("start_direction", networkSetting.getStart_direction()); editor.commit(); MainActivity.SCREEN_ROTATION = networkSetting.getScreen_rotation(); MainActivity.hideBar = networkSetting.getHide_bar(); + MainActivity.startDirection = networkSetting.getStart_direction(); return true; } diff --git a/app/src/main/res/layout/activity_setting_network.xml b/app/src/main/res/layout/activity_setting_network.xml index d2ef7e8..6f4dfc7 100644 --- a/app/src/main/res/layout/activity_setting_network.xml +++ b/app/src/main/res/layout/activity_setting_network.xml @@ -7,49 +7,6 @@ android:id="@+id/table"> - - - - - - - - - - - - - - - - - - - - - @@ -86,6 +43,7 @@ android:minWidth="150dp" android:id="@+id/port" android:singleLine="true" + android:inputType="number" android:hint="介于1024-65535之间的数字" /> @@ -112,6 +70,80 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +