Bläddra i källkod

增加64寸看板兼容,对应修改type参数,64寸看板url需要携带设备id

weizhengliang 11 månader sedan
förälder
incheckning
5a93c49549

+ 10 - 0
app/build.gradle

@@ -21,6 +21,8 @@ android {
         multiDexEnabled true
 
         testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
+
+        buildConfigField 'String', 'type', "\"${project.rootProject.ext.type}\""
     }
     buildTypes {
         release {
@@ -40,6 +42,14 @@ android {
         main {
             jniLibs.srcDirs = ['libs']
         }
+
+        println 'config ext.type ===== ' + type
+
+        if ("s64" == type) {
+            main.manifest.srcFile 'src/main/s64/AndroidManifest.xml'
+        } else {
+            main.manifest.srcFile 'src/main/AndroidManifest.xml'
+        }
     }
 
     lintOptions {

+ 7 - 0
app/src/main/java/com/example/informationkanban/MainActivity.java

@@ -74,6 +74,8 @@ public class MainActivity extends AppCompatActivity {
             EventBus.getDefault().register(this);
         }
 
+        MAC = GetInformationUtils.getIMEI(this);
+
         if (TextUtils.isEmpty(NetFunctionConfig.getCBDUrl())) {
             //url为空则需要手动配置
             UrlConfigDialogHelper.showDialog(MainActivity.this);
@@ -150,6 +152,11 @@ public class MainActivity extends AppCompatActivity {
         //String myUrl = "192.168.1.196:8080";
         String myUrl = NetFunctionConfig.getCBDUrl();
 
+        //例如:http://cbd.wdklian.com?token=123456
+        if (BuildConfig.type.equalsIgnoreCase("s64")) {
+            myUrl = NetFunctionConfig.getCBDS64Url() + MAC;
+        }
+
         Toast.makeText(MainActivity.this, "fetch: " + myUrl, Toast.LENGTH_LONG).show();
 
         webView.loadUrl(myUrl);

+ 7 - 1
app/src/main/java/com/example/informationkanban/dialog/UrlConfigDialogHelper.java

@@ -13,6 +13,7 @@ import android.widget.Button;
 import android.widget.EditText;
 import android.widget.Toast;
 
+import com.example.informationkanban.BuildConfig;
 import com.example.informationkanban.R;
 import com.example.informationkanban.utils.AppUtil;
 import com.example.informationkanban.utils.NetFunctionConfig;
@@ -43,7 +44,12 @@ public class UrlConfigDialogHelper {
         });
 
         save.setOnClickListener(v -> {
-            NetFunctionConfig.setCBDUrl(url_text.getText().toString());
+            if (BuildConfig.type.equalsIgnoreCase("s64")) {
+                NetFunctionConfig.setCBDS64Url(url_text.getText().toString());
+            } else {
+                NetFunctionConfig.setCBDUrl(url_text.getText().toString());
+            }
+
             if (alertDialog != null) {
                 alertDialog.dismiss();
             }

+ 33 - 0
app/src/main/java/com/example/informationkanban/utils/GetInformationUtils.java

@@ -1,11 +1,14 @@
 package com.example.informationkanban.utils;
 
+import android.Manifest;
 import android.annotation.SuppressLint;
 import android.content.Context;
+import android.content.pm.PackageManager;
 import android.net.wifi.WifiInfo;
 import android.net.wifi.WifiManager;
 import android.os.Build;
 import android.provider.Settings;
+import android.telephony.TelephonyManager;
 import android.text.TextUtils;
 
 import java.lang.reflect.Method;
@@ -204,6 +207,36 @@ public class GetInformationUtils {
         return re_time;
     }
 
+    public static String getIMEI(Context context) {
+        //获取序列号
+        String serial = null;
+        try {
+            serial = android.os.Build.SERIAL;
+            if (serial.equalsIgnoreCase("unknown")||serial.equalsIgnoreCase("0123456789abcdef")) {
+                final TelephonyManager mTelephony = (TelephonyManager) context.getApplicationContext().getSystemService(Context.TELEPHONY_SERVICE);
+                if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
+                    if (context.getApplicationContext().checkSelfPermission(Manifest.permission.READ_PHONE_STATE) != PackageManager.PERMISSION_GRANTED) {
+                        serial = null;
+                    }
+                }
+                assert mTelephony != null;
+                if (mTelephony.getDeviceId() != null) {
+                    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
+                        serial = mTelephony.getImei();
+                    } else {
+                        serial = mTelephony.getDeviceId();
+                    }
+                } else {
+                    serial = Settings.Secure.getString(context.getApplicationContext().getContentResolver(), Settings.Secure.ANDROID_ID);
+                }
+
+            }
+        } catch (Exception e) {
+
+        }
+        return serial;
+    }
+
 
     @SuppressLint("HardwareIds")
     public static String getSerialNo(Context context) {

+ 12 - 1
app/src/main/java/com/example/informationkanban/utils/NetFunctionConfig.java

@@ -29,6 +29,7 @@ public class NetFunctionConfig {
     private static final String default_server_port = "8100";
 
     private static final String KEY_CBD_URL = "KEY_CBD_URL";
+    private static final String KEY_CBD_S64_URL = "KEY_CBD_S64_URL";
 
     private static final String KEY_MODE = "KEY_MODE";
     private static final String KEY_PART_ID = "KEY_PART_ID";
@@ -99,13 +100,23 @@ public class NetFunctionConfig {
     }
 
     public static String getCBDUrl() {
-        return getSP().getString(KEY_CBD_URL, "http://cbd.s32.wdklian.com");
+        //return getSP().getString(KEY_CBD_URL, "http://cbd.s32.wdklian.com");
+        return getSP().getString(KEY_CBD_URL, "");
     }
 
     public static void setCBDUrl(String url) {
         getEditor().putString(KEY_CBD_URL, url).apply();
     }
 
+    public static String getCBDS64Url() {
+        //return getSP().getString(KEY_CBD_URL, "http://cbd.s64.wdklian.com?token=");
+        return getSP().getString(KEY_CBD_S64_URL, "");
+    }
+
+    public static void setCBDS64Url(String url) {
+        getEditor().putString(KEY_CBD_S64_URL, url).apply();
+    }
+
 
     private static SharedPreferences getSP() {
         return MyApplication.getInstance().getSharedPreferences(INFORMATION_KAN_BAN_KEY, Context.MODE_PRIVATE);

+ 76 - 0
app/src/main/s64/AndroidManifest.xml

@@ -0,0 +1,76 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+    package="com.example.informationkanban">
+
+    <uses-permission android:name="android.permission.INTERNET" />
+    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
+    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
+    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
+    <uses-permission android:name="android.permission.READ_PRIVILEGED_PHONE_STATE" />
+    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
+
+    <uses-permission android:name="android.permission.SET_TIME" />
+    <uses-permission android:name="android.permission.SET_TIME_ZONE" />
+    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
+    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
+
+    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
+    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
+    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
+    <uses-permission android:name="android.permission.CAMERA" />
+    <uses-permission android:name="android.permission.RECORD_AUDIO" />
+    <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
+
+
+    <application
+        android:name=".application.MyApplication"
+        android:allowBackup="true"
+        android:icon="@mipmap/cbd_logo"
+        android:label="@string/app_name"
+        android:roundIcon="@mipmap/cbd_logo"
+        android:supportsRtl="true"
+        android:hardwareAccelerated="true"
+        android:networkSecurityConfig="@xml/network_security_config"
+        android:theme="@style/AppTheme">
+        <activity android:name=".InitActivity"
+            android:screenOrientation="landscape"
+            android:launchMode="singleTask">
+            <!--<intent-filter android:priority="10">
+                <action android:name="android.intent.action.MAIN" />
+
+                <category android:name="android.intent.category.LAUNCHER" />
+
+                <category android:name="android.intent.category.HOME" />
+                <category android:name="android.intent.category.DEFAULT" />
+            </intent-filter>-->
+        </activity>
+
+        <activity android:name=".XwalkMainActivity"
+            android:screenOrientation="landscape"
+            android:launchMode="singleTask"/>
+
+        <activity android:name=".MainActivity"
+            android:screenOrientation="landscape"
+            android:theme="@style/NoTitleFullscreen"
+            android:launchMode="singleTask">
+            <intent-filter android:priority="10">
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+
+        <activity android:name=".TBSMainActivity"
+            android:screenOrientation="landscape"
+            android:configChanges="orientation|screenSize|keyboardHidden"
+            android:launchMode="singleTask">
+        </activity>
+
+        <!--tencent TBS-->
+        <service
+            android:name="com.tencent.smtt.export.external.DexClassLoaderProviderService"
+            android:label="dexopt"
+            android:process=":dexopt" >
+        </service>
+    </application>
+
+</manifest>

+ 3 - 0
build.gradle

@@ -12,6 +12,9 @@ buildscript {
         // NOTE: Do not place your application dependencies here; they belong
         // in the individual module build.gradle files
     }
+
+    //CBD看板类型:s32=32寸看板,s64=64寸看板
+    ext.type = "s32"
 }
 
 allprojects {