瀏覽代碼

增加分辨率设置,webview设置10分钟清理一次

weizhengliang 2 年之前
父節點
當前提交
4b4f21fca1

+ 6 - 3
app/src/main/AndroidManifest.xml

@@ -31,7 +31,8 @@
         android:supportsRtl="true"
         android:networkSecurityConfig="@xml/network_security_config"
         android:theme="@style/AppTheme">
-        <activity android:name=".InitActivity">
+        <activity android:name=".InitActivity"
+            android:launchMode="singleTask">
             <intent-filter android:priority="10">
                 <action android:name="android.intent.action.MAIN" />
 
@@ -41,8 +42,10 @@
                 <category android:name="android.intent.category.DEFAULT" />
             </intent-filter>
         </activity>
-        <activity android:name=".XwalkMainActivity"/>
-        <activity android:name=".MainActivity"/>
+        <activity android:name=".XwalkMainActivity"
+            android:launchMode="singleInstance"/>
+        <activity android:name=".MainActivity"
+            android:launchMode="singleInstance"/>
     </application>
 
 </manifest>

+ 28 - 0
app/src/main/java/com/example/informationkanban/InitActivity.java

@@ -9,6 +9,7 @@ import android.os.Bundle;
 import android.os.CountDownTimer;
 import android.provider.Settings;
 import android.text.TextUtils;
+import android.util.DisplayMetrics;
 import android.util.Log;
 import android.view.LayoutInflater;
 import android.view.View;
@@ -24,6 +25,7 @@ import android.widget.Toast;
 import androidx.appcompat.app.AppCompatActivity;
 
 import com.blankj.utilcode.util.NetworkUtils;
+import com.example.informationkanban.utils.AppUtil;
 import com.example.informationkanban.utils.GetInformationUtils;
 import com.example.informationkanban.utils.LanguageSetDialogHelper;
 import com.example.informationkanban.utils.LocaleMangerUtils;
@@ -70,6 +72,18 @@ public class InitActivity extends AppCompatActivity {
             NetFunctionConfig.setUUID(uuid);
         }*/
 
+        WindowManager wmanager = getWindowManager();
+        DisplayMetrics dm = new DisplayMetrics();
+        wmanager.getDefaultDisplay().getMetrics(dm);
+        String screenSize = "screen size: height=" + dm.heightPixels + ", width=" + dm.widthPixels + ", densityDpi=" + dm.densityDpi;
+        Log.e("kanban", screenSize);
+        Toast.makeText(this, screenSize, Toast.LENGTH_LONG).show();
+        if (dm.heightPixels != 1080 && dm.widthPixels != 1920) {
+            //设置分辨率为
+            Log.e("kanban", "set screen size: 1920x1080");
+            AppUtil.setScreenSize(1920, 1080);
+        }
+
         tvMac = findViewById(R.id.textView_mac);
         tvIP = findViewById(R.id.textView_ip);
         tvServer = findViewById(R.id.textView_server_ip);
@@ -163,6 +177,20 @@ public class InitActivity extends AppCompatActivity {
             }
         });
 
+        /*findViewById(R.id.btn_reset_lcd).setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                //取消倒计时
+                if (countDownTimer != null) {
+                    countDownTimer.cancel();
+                }
+                btnEnterMain.setVisibility(View.VISIBLE);
+                tvTime.setVisibility(View.INVISIBLE);
+
+                AppUtil.resetScreenSize();
+            }
+        });*/
+
         //检查服务器连接情况
         checkServer();
     }

+ 3 - 4
app/src/main/java/com/example/informationkanban/MainActivity.java

@@ -208,7 +208,7 @@ public class MainActivity extends AppCompatActivity {
 
         Log.e("间隔的秒数",(nowTimes / 1000) - (saveTimes / 1000)+"");
 
-        if (nowTimes - saveTimes >= 1800000 /*(nowTimes / 1000 / 60 / 60) - (saveTimes / 1000 / 60 / 60) >= hours*/) {
+        if (nowTimes - saveTimes >= 600000 /*(nowTimes / 1000 / 60 / 60) - (saveTimes / 1000 / 60 / 60) >= hours*/) {
             Log.d("updateTime", "free webview...");
             NetFunctionConfig.setTime(nowTime);
 
@@ -218,6 +218,7 @@ public class MainActivity extends AppCompatActivity {
                 webView.clearCache(false);
                 webView.freeMemory();
                 //webView.loadUrl("http://192.168.101.1:8100/index?mac=" + MAC);
+                webView.reload();
             }
 
             //finish();
@@ -250,9 +251,7 @@ public class MainActivity extends AppCompatActivity {
         public void onReceive(Context context, Intent intent) {
             String action = intent.getAction();
             //时间发生改变
-            if (Intent.ACTION_TIME_TICK.equals(action)
-                    || Intent.ACTION_TIME_CHANGED.equals(action)
-                    || Intent.ACTION_TIMEZONE_CHANGED.equals(action)) {
+            if (Intent.ACTION_TIME_TICK.equals(action)) {
                 updateTime();
             }
         }

+ 36 - 0
app/src/main/java/com/example/informationkanban/utils/AppUtil.java

@@ -141,4 +141,40 @@ public class AppUtil {
             restartApp(context);
         }
     }
+
+    //设置屏幕分辨率
+    public static void setScreenSize(int width, int height) {
+        try {
+            Process process = Runtime.getRuntime().exec("su");
+            if (null == process) {
+                return;
+            }
+            String sizeParam = "wm size " + width + "x" + height + "\n";
+            DataOutputStream os = new DataOutputStream(process.getOutputStream());
+            os.writeBytes(sizeParam);
+            //os.writeBytes("wm size 1920x1080\n");
+            //os.writeBytes("wm density 319\n");
+            os.writeBytes("exit\n");
+            os.flush();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
+    //重置屏幕分辨率
+    public static void resetScreenSize() {
+        try {
+            Process process = Runtime.getRuntime().exec("su");
+            if (null == process) {
+                return;
+            }
+            DataOutputStream os = new DataOutputStream(process.getOutputStream());
+            os.writeBytes("wm size reset\n");
+            os.writeBytes("wm density reset\n");
+            os.writeBytes("exit\n");
+            os.flush();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
 }

+ 23 - 7
app/src/main/res/layout/init_layout.xml

@@ -97,15 +97,31 @@
             android:textSize="20sp"/>
     </RadioGroup>
 
-    <Button
-        android:id="@+id/btn_enter_main"
+
+    <LinearLayout
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
-        android:layout_marginTop="10dp"
-        android:background="@drawable/selector_login_botton"
-        android:text="@string/enter_info_board"
-        android:textSize="20sp"
-        android:visibility="invisible"/>
+        android:layout_marginTop="10dp">
+
+        <Button
+            android:id="@+id/btn_enter_main"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:background="@drawable/selector_login_botton"
+            android:text="@string/enter_info_board"
+            android:textSize="20sp"
+            android:visibility="invisible"/>
+
+        <Button
+            android:id="@+id/btn_reset_lcd"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginLeft="20dp"
+            android:background="@drawable/selector_login_botton"
+            android:text="@string/reset_lcd"
+            android:textSize="20sp"
+            android:visibility="gone"/>
+    </LinearLayout>
 
     <TextView
         android:id="@+id/textView_countdown"

+ 1 - 0
app/src/main/res/values-zh-rCN/strings.xml

@@ -4,6 +4,7 @@
     <string name="setting_language">语言设置</string>
     <string name="setting_change_server">修改服务器地址</string>
     <string name="enter_settings">进入设置</string>
+    <string name="reset_lcd">重置分辨率</string>
     <string name="use_system_webview">使用系统webview</string>
     <string name="use_app_webview">使用内置webview</string>
     <string name="enter_info_board">进入信息看板</string>

+ 1 - 0
app/src/main/res/values/strings.xml

@@ -4,6 +4,7 @@
     <string name="setting_language">Language set</string>
     <string name="setting_change_server">Change server</string>
     <string name="enter_settings">Settings</string>
+    <string name="reset_lcd">Reset Lcd</string>
     <string name="use_system_webview">System webview</string>
     <string name="use_app_webview">App webview</string>
     <string name="enter_info_board">Enter InfoBoard</string>