diff --git a/app/build.gradle b/app/build.gradle index 0614b2f..5ec7f4d 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,15 +1,24 @@ apply plugin: 'com.android.application' android { - compileSdkVersion 29 - buildToolsVersion "29.0.3" + compileSdkVersion 30 + buildToolsVersion "30.0.3" defaultConfig { applicationId "com.casic.smartwellapp" - minSdkVersion 17 - targetSdkVersion 29 - versionCode 8 - versionName "v1.1.2" - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + //备案号sdk版本要求最低24 + minSdkVersion 24 + targetSdkVersion 30 + /** + * 使用中版本如下: + * versionCode 8 + * versionName "v1.1.2" + * + * 待测试上架版本: + * versionCode 9 + * versionName "v1.1.3" + * */ + versionCode 9 + versionName "v1.1.3" multiDexEnabled true } buildTypes { @@ -37,32 +46,50 @@ exclude 'META-INF/LGPL2.1' exclude 'META-INF/services/javax.annotation.processing.Processor' exclude 'META-INF/rxjava.properties' - exclude 'org/codehaus/jackson/impl/VERSION.txt' - exclude 'org/codehaus/jackson/map/VERSION.txt' +// exclude 'org/codehaus/jackson/impl/VERSION.txt' +// exclude 'org/codehaus/jackson/map/VERSION.txt' + } + + //导入aar包 + repositories { + flatDir { + dirs 'libs' + } } } dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') - implementation 'androidx.appcompat:appcompat:1.2.0' - implementation 'androidx.constraintlayout:constraintlayout:2.0.4' - implementation 'pub.devrel:easypermissions:1.3.0' - testImplementation 'junit:junit:4.12' - androidTestImplementation 'androidx.test:runner:1.2.0' - androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0' + //移动警务授权sdk implementation files('libs/OauthLoginJar_V1.0.jar') - implementation 'com.lbx:xTools:2.1.2' - implementation 'org.bouncycastle:bcmail-jdk15on:1.59' - implementation 'org.apache.commons:commons-lang3:3.1' - implementation 'com.alibaba:fastjson:1.2.68' - implementation files('libs/guava-17.0.jar') - implementation files('libs/androidsvg-1.2.2-beta-1.jar') + //山海易绘离线地图 implementation files('libs/EzMapServiceApiForAndroid-1.0.3.0.jar') implementation files('libs/EzRouterAPIForAndroid.v1.0.1.201206151022.jar') - implementation files('libs/jts-1.13.jar') - implementation files('libs/kxml2-2.3.0.jar') implementation files('libs/EzLicenseAPI4Android.jar') implementation files('libs/EzMapApiForAndnroid.3.1.0.2.jar') - implementation files('libs/jackson-core-lgpl-1.9.5.jar') - implementation files('libs/jackson-mapper-lgpl-1.9.5.jar') + //移动警务备案号sdk + implementation(name: 'libfriapkrecord-r1.0.1', ext: 'aar') + implementation 'androidx.appcompat:appcompat:1.2.0' + //Google申请手机相关权限官方库 + implementation group: 'pub.devrel', name: 'easypermissions', version: '3.0.0' + //Google官方Json解析 + implementation group: 'com.google.code.gson', name: 'gson', version: '2.8.6' +// implementation group: 'org.bouncycastle', name: 'bcmail-jdk15on', version: '1.68' + //公共帮助类 +// implementation group: 'org.apache.commons', name: 'commons-lang3', version: '3.1' + //阿里巴巴Json解析库 +// implementation group: 'com.alibaba', name: 'fastjson', version: '1.2.76' + //Google提供的一套工具类 +// implementation group: 'com.google.guava', name: 'guava', version: '30.1.1-jre' + //‎安卓SVG渲染库 +// implementation group: 'com.caverock', name: 'androidsvg', version: '1.4' + //JTS拓扑套件是用于建模和操纵二维线性几何形状的API +// implementation group: 'com.vividsolutions', name: 'jts', version: '1.13' + //Json解析 +// implementation group: 'org.codehaus.jackson', name: 'jackson-core-lgpl', version: '1.9.13' + //Jackson数据映射 +// implementation group: 'org.codehaus.jackson', name: 'jackson-mapper-lgpl', version: '1.9.13' + //xml解析 +// implementation group: 'net.sf.kxml', name: 'kxml2', version: '2.3.0' +// implementation 'com.lbx:xTools:2.1.2' } diff --git a/app/build.gradle b/app/build.gradle index 0614b2f..5ec7f4d 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,15 +1,24 @@ apply plugin: 'com.android.application' android { - compileSdkVersion 29 - buildToolsVersion "29.0.3" + compileSdkVersion 30 + buildToolsVersion "30.0.3" defaultConfig { applicationId "com.casic.smartwellapp" - minSdkVersion 17 - targetSdkVersion 29 - versionCode 8 - versionName "v1.1.2" - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + //备案号sdk版本要求最低24 + minSdkVersion 24 + targetSdkVersion 30 + /** + * 使用中版本如下: + * versionCode 8 + * versionName "v1.1.2" + * + * 待测试上架版本: + * versionCode 9 + * versionName "v1.1.3" + * */ + versionCode 9 + versionName "v1.1.3" multiDexEnabled true } buildTypes { @@ -37,32 +46,50 @@ exclude 'META-INF/LGPL2.1' exclude 'META-INF/services/javax.annotation.processing.Processor' exclude 'META-INF/rxjava.properties' - exclude 'org/codehaus/jackson/impl/VERSION.txt' - exclude 'org/codehaus/jackson/map/VERSION.txt' +// exclude 'org/codehaus/jackson/impl/VERSION.txt' +// exclude 'org/codehaus/jackson/map/VERSION.txt' + } + + //导入aar包 + repositories { + flatDir { + dirs 'libs' + } } } dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') - implementation 'androidx.appcompat:appcompat:1.2.0' - implementation 'androidx.constraintlayout:constraintlayout:2.0.4' - implementation 'pub.devrel:easypermissions:1.3.0' - testImplementation 'junit:junit:4.12' - androidTestImplementation 'androidx.test:runner:1.2.0' - androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0' + //移动警务授权sdk implementation files('libs/OauthLoginJar_V1.0.jar') - implementation 'com.lbx:xTools:2.1.2' - implementation 'org.bouncycastle:bcmail-jdk15on:1.59' - implementation 'org.apache.commons:commons-lang3:3.1' - implementation 'com.alibaba:fastjson:1.2.68' - implementation files('libs/guava-17.0.jar') - implementation files('libs/androidsvg-1.2.2-beta-1.jar') + //山海易绘离线地图 implementation files('libs/EzMapServiceApiForAndroid-1.0.3.0.jar') implementation files('libs/EzRouterAPIForAndroid.v1.0.1.201206151022.jar') - implementation files('libs/jts-1.13.jar') - implementation files('libs/kxml2-2.3.0.jar') implementation files('libs/EzLicenseAPI4Android.jar') implementation files('libs/EzMapApiForAndnroid.3.1.0.2.jar') - implementation files('libs/jackson-core-lgpl-1.9.5.jar') - implementation files('libs/jackson-mapper-lgpl-1.9.5.jar') + //移动警务备案号sdk + implementation(name: 'libfriapkrecord-r1.0.1', ext: 'aar') + implementation 'androidx.appcompat:appcompat:1.2.0' + //Google申请手机相关权限官方库 + implementation group: 'pub.devrel', name: 'easypermissions', version: '3.0.0' + //Google官方Json解析 + implementation group: 'com.google.code.gson', name: 'gson', version: '2.8.6' +// implementation group: 'org.bouncycastle', name: 'bcmail-jdk15on', version: '1.68' + //公共帮助类 +// implementation group: 'org.apache.commons', name: 'commons-lang3', version: '3.1' + //阿里巴巴Json解析库 +// implementation group: 'com.alibaba', name: 'fastjson', version: '1.2.76' + //Google提供的一套工具类 +// implementation group: 'com.google.guava', name: 'guava', version: '30.1.1-jre' + //‎安卓SVG渲染库 +// implementation group: 'com.caverock', name: 'androidsvg', version: '1.4' + //JTS拓扑套件是用于建模和操纵二维线性几何形状的API +// implementation group: 'com.vividsolutions', name: 'jts', version: '1.13' + //Json解析 +// implementation group: 'org.codehaus.jackson', name: 'jackson-core-lgpl', version: '1.9.13' + //Jackson数据映射 +// implementation group: 'org.codehaus.jackson', name: 'jackson-mapper-lgpl', version: '1.9.13' + //xml解析 +// implementation group: 'net.sf.kxml', name: 'kxml2', version: '2.3.0' +// implementation 'com.lbx:xTools:2.1.2' } diff --git a/app/libs/androidsvg-1.2.2-beta-1.jar b/app/libs/androidsvg-1.2.2-beta-1.jar deleted file mode 100644 index aa69f00..0000000 --- a/app/libs/androidsvg-1.2.2-beta-1.jar +++ /dev/null Binary files differ diff --git a/app/build.gradle b/app/build.gradle index 0614b2f..5ec7f4d 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,15 +1,24 @@ apply plugin: 'com.android.application' android { - compileSdkVersion 29 - buildToolsVersion "29.0.3" + compileSdkVersion 30 + buildToolsVersion "30.0.3" defaultConfig { applicationId "com.casic.smartwellapp" - minSdkVersion 17 - targetSdkVersion 29 - versionCode 8 - versionName "v1.1.2" - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + //备案号sdk版本要求最低24 + minSdkVersion 24 + targetSdkVersion 30 + /** + * 使用中版本如下: + * versionCode 8 + * versionName "v1.1.2" + * + * 待测试上架版本: + * versionCode 9 + * versionName "v1.1.3" + * */ + versionCode 9 + versionName "v1.1.3" multiDexEnabled true } buildTypes { @@ -37,32 +46,50 @@ exclude 'META-INF/LGPL2.1' exclude 'META-INF/services/javax.annotation.processing.Processor' exclude 'META-INF/rxjava.properties' - exclude 'org/codehaus/jackson/impl/VERSION.txt' - exclude 'org/codehaus/jackson/map/VERSION.txt' +// exclude 'org/codehaus/jackson/impl/VERSION.txt' +// exclude 'org/codehaus/jackson/map/VERSION.txt' + } + + //导入aar包 + repositories { + flatDir { + dirs 'libs' + } } } dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') - implementation 'androidx.appcompat:appcompat:1.2.0' - implementation 'androidx.constraintlayout:constraintlayout:2.0.4' - implementation 'pub.devrel:easypermissions:1.3.0' - testImplementation 'junit:junit:4.12' - androidTestImplementation 'androidx.test:runner:1.2.0' - androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0' + //移动警务授权sdk implementation files('libs/OauthLoginJar_V1.0.jar') - implementation 'com.lbx:xTools:2.1.2' - implementation 'org.bouncycastle:bcmail-jdk15on:1.59' - implementation 'org.apache.commons:commons-lang3:3.1' - implementation 'com.alibaba:fastjson:1.2.68' - implementation files('libs/guava-17.0.jar') - implementation files('libs/androidsvg-1.2.2-beta-1.jar') + //山海易绘离线地图 implementation files('libs/EzMapServiceApiForAndroid-1.0.3.0.jar') implementation files('libs/EzRouterAPIForAndroid.v1.0.1.201206151022.jar') - implementation files('libs/jts-1.13.jar') - implementation files('libs/kxml2-2.3.0.jar') implementation files('libs/EzLicenseAPI4Android.jar') implementation files('libs/EzMapApiForAndnroid.3.1.0.2.jar') - implementation files('libs/jackson-core-lgpl-1.9.5.jar') - implementation files('libs/jackson-mapper-lgpl-1.9.5.jar') + //移动警务备案号sdk + implementation(name: 'libfriapkrecord-r1.0.1', ext: 'aar') + implementation 'androidx.appcompat:appcompat:1.2.0' + //Google申请手机相关权限官方库 + implementation group: 'pub.devrel', name: 'easypermissions', version: '3.0.0' + //Google官方Json解析 + implementation group: 'com.google.code.gson', name: 'gson', version: '2.8.6' +// implementation group: 'org.bouncycastle', name: 'bcmail-jdk15on', version: '1.68' + //公共帮助类 +// implementation group: 'org.apache.commons', name: 'commons-lang3', version: '3.1' + //阿里巴巴Json解析库 +// implementation group: 'com.alibaba', name: 'fastjson', version: '1.2.76' + //Google提供的一套工具类 +// implementation group: 'com.google.guava', name: 'guava', version: '30.1.1-jre' + //‎安卓SVG渲染库 +// implementation group: 'com.caverock', name: 'androidsvg', version: '1.4' + //JTS拓扑套件是用于建模和操纵二维线性几何形状的API +// implementation group: 'com.vividsolutions', name: 'jts', version: '1.13' + //Json解析 +// implementation group: 'org.codehaus.jackson', name: 'jackson-core-lgpl', version: '1.9.13' + //Jackson数据映射 +// implementation group: 'org.codehaus.jackson', name: 'jackson-mapper-lgpl', version: '1.9.13' + //xml解析 +// implementation group: 'net.sf.kxml', name: 'kxml2', version: '2.3.0' +// implementation 'com.lbx:xTools:2.1.2' } diff --git a/app/libs/androidsvg-1.2.2-beta-1.jar b/app/libs/androidsvg-1.2.2-beta-1.jar deleted file mode 100644 index aa69f00..0000000 --- a/app/libs/androidsvg-1.2.2-beta-1.jar +++ /dev/null Binary files differ diff --git a/app/libs/guava-17.0.jar b/app/libs/guava-17.0.jar deleted file mode 100644 index 661fc74..0000000 --- a/app/libs/guava-17.0.jar +++ /dev/null Binary files differ diff --git a/app/build.gradle b/app/build.gradle index 0614b2f..5ec7f4d 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,15 +1,24 @@ apply plugin: 'com.android.application' android { - compileSdkVersion 29 - buildToolsVersion "29.0.3" + compileSdkVersion 30 + buildToolsVersion "30.0.3" defaultConfig { applicationId "com.casic.smartwellapp" - minSdkVersion 17 - targetSdkVersion 29 - versionCode 8 - versionName "v1.1.2" - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + //备案号sdk版本要求最低24 + minSdkVersion 24 + targetSdkVersion 30 + /** + * 使用中版本如下: + * versionCode 8 + * versionName "v1.1.2" + * + * 待测试上架版本: + * versionCode 9 + * versionName "v1.1.3" + * */ + versionCode 9 + versionName "v1.1.3" multiDexEnabled true } buildTypes { @@ -37,32 +46,50 @@ exclude 'META-INF/LGPL2.1' exclude 'META-INF/services/javax.annotation.processing.Processor' exclude 'META-INF/rxjava.properties' - exclude 'org/codehaus/jackson/impl/VERSION.txt' - exclude 'org/codehaus/jackson/map/VERSION.txt' +// exclude 'org/codehaus/jackson/impl/VERSION.txt' +// exclude 'org/codehaus/jackson/map/VERSION.txt' + } + + //导入aar包 + repositories { + flatDir { + dirs 'libs' + } } } dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') - implementation 'androidx.appcompat:appcompat:1.2.0' - implementation 'androidx.constraintlayout:constraintlayout:2.0.4' - implementation 'pub.devrel:easypermissions:1.3.0' - testImplementation 'junit:junit:4.12' - androidTestImplementation 'androidx.test:runner:1.2.0' - androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0' + //移动警务授权sdk implementation files('libs/OauthLoginJar_V1.0.jar') - implementation 'com.lbx:xTools:2.1.2' - implementation 'org.bouncycastle:bcmail-jdk15on:1.59' - implementation 'org.apache.commons:commons-lang3:3.1' - implementation 'com.alibaba:fastjson:1.2.68' - implementation files('libs/guava-17.0.jar') - implementation files('libs/androidsvg-1.2.2-beta-1.jar') + //山海易绘离线地图 implementation files('libs/EzMapServiceApiForAndroid-1.0.3.0.jar') implementation files('libs/EzRouterAPIForAndroid.v1.0.1.201206151022.jar') - implementation files('libs/jts-1.13.jar') - implementation files('libs/kxml2-2.3.0.jar') implementation files('libs/EzLicenseAPI4Android.jar') implementation files('libs/EzMapApiForAndnroid.3.1.0.2.jar') - implementation files('libs/jackson-core-lgpl-1.9.5.jar') - implementation files('libs/jackson-mapper-lgpl-1.9.5.jar') + //移动警务备案号sdk + implementation(name: 'libfriapkrecord-r1.0.1', ext: 'aar') + implementation 'androidx.appcompat:appcompat:1.2.0' + //Google申请手机相关权限官方库 + implementation group: 'pub.devrel', name: 'easypermissions', version: '3.0.0' + //Google官方Json解析 + implementation group: 'com.google.code.gson', name: 'gson', version: '2.8.6' +// implementation group: 'org.bouncycastle', name: 'bcmail-jdk15on', version: '1.68' + //公共帮助类 +// implementation group: 'org.apache.commons', name: 'commons-lang3', version: '3.1' + //阿里巴巴Json解析库 +// implementation group: 'com.alibaba', name: 'fastjson', version: '1.2.76' + //Google提供的一套工具类 +// implementation group: 'com.google.guava', name: 'guava', version: '30.1.1-jre' + //‎安卓SVG渲染库 +// implementation group: 'com.caverock', name: 'androidsvg', version: '1.4' + //JTS拓扑套件是用于建模和操纵二维线性几何形状的API +// implementation group: 'com.vividsolutions', name: 'jts', version: '1.13' + //Json解析 +// implementation group: 'org.codehaus.jackson', name: 'jackson-core-lgpl', version: '1.9.13' + //Jackson数据映射 +// implementation group: 'org.codehaus.jackson', name: 'jackson-mapper-lgpl', version: '1.9.13' + //xml解析 +// implementation group: 'net.sf.kxml', name: 'kxml2', version: '2.3.0' +// implementation 'com.lbx:xTools:2.1.2' } diff --git a/app/libs/androidsvg-1.2.2-beta-1.jar b/app/libs/androidsvg-1.2.2-beta-1.jar deleted file mode 100644 index aa69f00..0000000 --- a/app/libs/androidsvg-1.2.2-beta-1.jar +++ /dev/null Binary files differ diff --git a/app/libs/guava-17.0.jar b/app/libs/guava-17.0.jar deleted file mode 100644 index 661fc74..0000000 --- a/app/libs/guava-17.0.jar +++ /dev/null Binary files differ diff --git a/app/libs/jackson-core-lgpl-1.9.5.jar b/app/libs/jackson-core-lgpl-1.9.5.jar deleted file mode 100644 index 89dc160..0000000 --- a/app/libs/jackson-core-lgpl-1.9.5.jar +++ /dev/null Binary files differ diff --git a/app/build.gradle b/app/build.gradle index 0614b2f..5ec7f4d 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,15 +1,24 @@ apply plugin: 'com.android.application' android { - compileSdkVersion 29 - buildToolsVersion "29.0.3" + compileSdkVersion 30 + buildToolsVersion "30.0.3" defaultConfig { applicationId "com.casic.smartwellapp" - minSdkVersion 17 - targetSdkVersion 29 - versionCode 8 - versionName "v1.1.2" - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + //备案号sdk版本要求最低24 + minSdkVersion 24 + targetSdkVersion 30 + /** + * 使用中版本如下: + * versionCode 8 + * versionName "v1.1.2" + * + * 待测试上架版本: + * versionCode 9 + * versionName "v1.1.3" + * */ + versionCode 9 + versionName "v1.1.3" multiDexEnabled true } buildTypes { @@ -37,32 +46,50 @@ exclude 'META-INF/LGPL2.1' exclude 'META-INF/services/javax.annotation.processing.Processor' exclude 'META-INF/rxjava.properties' - exclude 'org/codehaus/jackson/impl/VERSION.txt' - exclude 'org/codehaus/jackson/map/VERSION.txt' +// exclude 'org/codehaus/jackson/impl/VERSION.txt' +// exclude 'org/codehaus/jackson/map/VERSION.txt' + } + + //导入aar包 + repositories { + flatDir { + dirs 'libs' + } } } dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') - implementation 'androidx.appcompat:appcompat:1.2.0' - implementation 'androidx.constraintlayout:constraintlayout:2.0.4' - implementation 'pub.devrel:easypermissions:1.3.0' - testImplementation 'junit:junit:4.12' - androidTestImplementation 'androidx.test:runner:1.2.0' - androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0' + //移动警务授权sdk implementation files('libs/OauthLoginJar_V1.0.jar') - implementation 'com.lbx:xTools:2.1.2' - implementation 'org.bouncycastle:bcmail-jdk15on:1.59' - implementation 'org.apache.commons:commons-lang3:3.1' - implementation 'com.alibaba:fastjson:1.2.68' - implementation files('libs/guava-17.0.jar') - implementation files('libs/androidsvg-1.2.2-beta-1.jar') + //山海易绘离线地图 implementation files('libs/EzMapServiceApiForAndroid-1.0.3.0.jar') implementation files('libs/EzRouterAPIForAndroid.v1.0.1.201206151022.jar') - implementation files('libs/jts-1.13.jar') - implementation files('libs/kxml2-2.3.0.jar') implementation files('libs/EzLicenseAPI4Android.jar') implementation files('libs/EzMapApiForAndnroid.3.1.0.2.jar') - implementation files('libs/jackson-core-lgpl-1.9.5.jar') - implementation files('libs/jackson-mapper-lgpl-1.9.5.jar') + //移动警务备案号sdk + implementation(name: 'libfriapkrecord-r1.0.1', ext: 'aar') + implementation 'androidx.appcompat:appcompat:1.2.0' + //Google申请手机相关权限官方库 + implementation group: 'pub.devrel', name: 'easypermissions', version: '3.0.0' + //Google官方Json解析 + implementation group: 'com.google.code.gson', name: 'gson', version: '2.8.6' +// implementation group: 'org.bouncycastle', name: 'bcmail-jdk15on', version: '1.68' + //公共帮助类 +// implementation group: 'org.apache.commons', name: 'commons-lang3', version: '3.1' + //阿里巴巴Json解析库 +// implementation group: 'com.alibaba', name: 'fastjson', version: '1.2.76' + //Google提供的一套工具类 +// implementation group: 'com.google.guava', name: 'guava', version: '30.1.1-jre' + //‎安卓SVG渲染库 +// implementation group: 'com.caverock', name: 'androidsvg', version: '1.4' + //JTS拓扑套件是用于建模和操纵二维线性几何形状的API +// implementation group: 'com.vividsolutions', name: 'jts', version: '1.13' + //Json解析 +// implementation group: 'org.codehaus.jackson', name: 'jackson-core-lgpl', version: '1.9.13' + //Jackson数据映射 +// implementation group: 'org.codehaus.jackson', name: 'jackson-mapper-lgpl', version: '1.9.13' + //xml解析 +// implementation group: 'net.sf.kxml', name: 'kxml2', version: '2.3.0' +// implementation 'com.lbx:xTools:2.1.2' } diff --git a/app/libs/androidsvg-1.2.2-beta-1.jar b/app/libs/androidsvg-1.2.2-beta-1.jar deleted file mode 100644 index aa69f00..0000000 --- a/app/libs/androidsvg-1.2.2-beta-1.jar +++ /dev/null Binary files differ diff --git a/app/libs/guava-17.0.jar b/app/libs/guava-17.0.jar deleted file mode 100644 index 661fc74..0000000 --- a/app/libs/guava-17.0.jar +++ /dev/null Binary files differ diff --git a/app/libs/jackson-core-lgpl-1.9.5.jar b/app/libs/jackson-core-lgpl-1.9.5.jar deleted file mode 100644 index 89dc160..0000000 --- a/app/libs/jackson-core-lgpl-1.9.5.jar +++ /dev/null Binary files differ diff --git a/app/libs/jackson-mapper-lgpl-1.9.5.jar b/app/libs/jackson-mapper-lgpl-1.9.5.jar deleted file mode 100644 index 095ffb3..0000000 --- a/app/libs/jackson-mapper-lgpl-1.9.5.jar +++ /dev/null Binary files differ diff --git a/app/build.gradle b/app/build.gradle index 0614b2f..5ec7f4d 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,15 +1,24 @@ apply plugin: 'com.android.application' android { - compileSdkVersion 29 - buildToolsVersion "29.0.3" + compileSdkVersion 30 + buildToolsVersion "30.0.3" defaultConfig { applicationId "com.casic.smartwellapp" - minSdkVersion 17 - targetSdkVersion 29 - versionCode 8 - versionName "v1.1.2" - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + //备案号sdk版本要求最低24 + minSdkVersion 24 + targetSdkVersion 30 + /** + * 使用中版本如下: + * versionCode 8 + * versionName "v1.1.2" + * + * 待测试上架版本: + * versionCode 9 + * versionName "v1.1.3" + * */ + versionCode 9 + versionName "v1.1.3" multiDexEnabled true } buildTypes { @@ -37,32 +46,50 @@ exclude 'META-INF/LGPL2.1' exclude 'META-INF/services/javax.annotation.processing.Processor' exclude 'META-INF/rxjava.properties' - exclude 'org/codehaus/jackson/impl/VERSION.txt' - exclude 'org/codehaus/jackson/map/VERSION.txt' +// exclude 'org/codehaus/jackson/impl/VERSION.txt' +// exclude 'org/codehaus/jackson/map/VERSION.txt' + } + + //导入aar包 + repositories { + flatDir { + dirs 'libs' + } } } dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') - implementation 'androidx.appcompat:appcompat:1.2.0' - implementation 'androidx.constraintlayout:constraintlayout:2.0.4' - implementation 'pub.devrel:easypermissions:1.3.0' - testImplementation 'junit:junit:4.12' - androidTestImplementation 'androidx.test:runner:1.2.0' - androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0' + //移动警务授权sdk implementation files('libs/OauthLoginJar_V1.0.jar') - implementation 'com.lbx:xTools:2.1.2' - implementation 'org.bouncycastle:bcmail-jdk15on:1.59' - implementation 'org.apache.commons:commons-lang3:3.1' - implementation 'com.alibaba:fastjson:1.2.68' - implementation files('libs/guava-17.0.jar') - implementation files('libs/androidsvg-1.2.2-beta-1.jar') + //山海易绘离线地图 implementation files('libs/EzMapServiceApiForAndroid-1.0.3.0.jar') implementation files('libs/EzRouterAPIForAndroid.v1.0.1.201206151022.jar') - implementation files('libs/jts-1.13.jar') - implementation files('libs/kxml2-2.3.0.jar') implementation files('libs/EzLicenseAPI4Android.jar') implementation files('libs/EzMapApiForAndnroid.3.1.0.2.jar') - implementation files('libs/jackson-core-lgpl-1.9.5.jar') - implementation files('libs/jackson-mapper-lgpl-1.9.5.jar') + //移动警务备案号sdk + implementation(name: 'libfriapkrecord-r1.0.1', ext: 'aar') + implementation 'androidx.appcompat:appcompat:1.2.0' + //Google申请手机相关权限官方库 + implementation group: 'pub.devrel', name: 'easypermissions', version: '3.0.0' + //Google官方Json解析 + implementation group: 'com.google.code.gson', name: 'gson', version: '2.8.6' +// implementation group: 'org.bouncycastle', name: 'bcmail-jdk15on', version: '1.68' + //公共帮助类 +// implementation group: 'org.apache.commons', name: 'commons-lang3', version: '3.1' + //阿里巴巴Json解析库 +// implementation group: 'com.alibaba', name: 'fastjson', version: '1.2.76' + //Google提供的一套工具类 +// implementation group: 'com.google.guava', name: 'guava', version: '30.1.1-jre' + //‎安卓SVG渲染库 +// implementation group: 'com.caverock', name: 'androidsvg', version: '1.4' + //JTS拓扑套件是用于建模和操纵二维线性几何形状的API +// implementation group: 'com.vividsolutions', name: 'jts', version: '1.13' + //Json解析 +// implementation group: 'org.codehaus.jackson', name: 'jackson-core-lgpl', version: '1.9.13' + //Jackson数据映射 +// implementation group: 'org.codehaus.jackson', name: 'jackson-mapper-lgpl', version: '1.9.13' + //xml解析 +// implementation group: 'net.sf.kxml', name: 'kxml2', version: '2.3.0' +// implementation 'com.lbx:xTools:2.1.2' } diff --git a/app/libs/androidsvg-1.2.2-beta-1.jar b/app/libs/androidsvg-1.2.2-beta-1.jar deleted file mode 100644 index aa69f00..0000000 --- a/app/libs/androidsvg-1.2.2-beta-1.jar +++ /dev/null Binary files differ diff --git a/app/libs/guava-17.0.jar b/app/libs/guava-17.0.jar deleted file mode 100644 index 661fc74..0000000 --- a/app/libs/guava-17.0.jar +++ /dev/null Binary files differ diff --git a/app/libs/jackson-core-lgpl-1.9.5.jar b/app/libs/jackson-core-lgpl-1.9.5.jar deleted file mode 100644 index 89dc160..0000000 --- a/app/libs/jackson-core-lgpl-1.9.5.jar +++ /dev/null Binary files differ diff --git a/app/libs/jackson-mapper-lgpl-1.9.5.jar b/app/libs/jackson-mapper-lgpl-1.9.5.jar deleted file mode 100644 index 095ffb3..0000000 --- a/app/libs/jackson-mapper-lgpl-1.9.5.jar +++ /dev/null Binary files differ diff --git a/app/libs/jts-1.13.jar b/app/libs/jts-1.13.jar deleted file mode 100644 index bbaa20b..0000000 --- a/app/libs/jts-1.13.jar +++ /dev/null Binary files differ diff --git a/app/build.gradle b/app/build.gradle index 0614b2f..5ec7f4d 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,15 +1,24 @@ apply plugin: 'com.android.application' android { - compileSdkVersion 29 - buildToolsVersion "29.0.3" + compileSdkVersion 30 + buildToolsVersion "30.0.3" defaultConfig { applicationId "com.casic.smartwellapp" - minSdkVersion 17 - targetSdkVersion 29 - versionCode 8 - versionName "v1.1.2" - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + //备案号sdk版本要求最低24 + minSdkVersion 24 + targetSdkVersion 30 + /** + * 使用中版本如下: + * versionCode 8 + * versionName "v1.1.2" + * + * 待测试上架版本: + * versionCode 9 + * versionName "v1.1.3" + * */ + versionCode 9 + versionName "v1.1.3" multiDexEnabled true } buildTypes { @@ -37,32 +46,50 @@ exclude 'META-INF/LGPL2.1' exclude 'META-INF/services/javax.annotation.processing.Processor' exclude 'META-INF/rxjava.properties' - exclude 'org/codehaus/jackson/impl/VERSION.txt' - exclude 'org/codehaus/jackson/map/VERSION.txt' +// exclude 'org/codehaus/jackson/impl/VERSION.txt' +// exclude 'org/codehaus/jackson/map/VERSION.txt' + } + + //导入aar包 + repositories { + flatDir { + dirs 'libs' + } } } dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') - implementation 'androidx.appcompat:appcompat:1.2.0' - implementation 'androidx.constraintlayout:constraintlayout:2.0.4' - implementation 'pub.devrel:easypermissions:1.3.0' - testImplementation 'junit:junit:4.12' - androidTestImplementation 'androidx.test:runner:1.2.0' - androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0' + //移动警务授权sdk implementation files('libs/OauthLoginJar_V1.0.jar') - implementation 'com.lbx:xTools:2.1.2' - implementation 'org.bouncycastle:bcmail-jdk15on:1.59' - implementation 'org.apache.commons:commons-lang3:3.1' - implementation 'com.alibaba:fastjson:1.2.68' - implementation files('libs/guava-17.0.jar') - implementation files('libs/androidsvg-1.2.2-beta-1.jar') + //山海易绘离线地图 implementation files('libs/EzMapServiceApiForAndroid-1.0.3.0.jar') implementation files('libs/EzRouterAPIForAndroid.v1.0.1.201206151022.jar') - implementation files('libs/jts-1.13.jar') - implementation files('libs/kxml2-2.3.0.jar') implementation files('libs/EzLicenseAPI4Android.jar') implementation files('libs/EzMapApiForAndnroid.3.1.0.2.jar') - implementation files('libs/jackson-core-lgpl-1.9.5.jar') - implementation files('libs/jackson-mapper-lgpl-1.9.5.jar') + //移动警务备案号sdk + implementation(name: 'libfriapkrecord-r1.0.1', ext: 'aar') + implementation 'androidx.appcompat:appcompat:1.2.0' + //Google申请手机相关权限官方库 + implementation group: 'pub.devrel', name: 'easypermissions', version: '3.0.0' + //Google官方Json解析 + implementation group: 'com.google.code.gson', name: 'gson', version: '2.8.6' +// implementation group: 'org.bouncycastle', name: 'bcmail-jdk15on', version: '1.68' + //公共帮助类 +// implementation group: 'org.apache.commons', name: 'commons-lang3', version: '3.1' + //阿里巴巴Json解析库 +// implementation group: 'com.alibaba', name: 'fastjson', version: '1.2.76' + //Google提供的一套工具类 +// implementation group: 'com.google.guava', name: 'guava', version: '30.1.1-jre' + //‎安卓SVG渲染库 +// implementation group: 'com.caverock', name: 'androidsvg', version: '1.4' + //JTS拓扑套件是用于建模和操纵二维线性几何形状的API +// implementation group: 'com.vividsolutions', name: 'jts', version: '1.13' + //Json解析 +// implementation group: 'org.codehaus.jackson', name: 'jackson-core-lgpl', version: '1.9.13' + //Jackson数据映射 +// implementation group: 'org.codehaus.jackson', name: 'jackson-mapper-lgpl', version: '1.9.13' + //xml解析 +// implementation group: 'net.sf.kxml', name: 'kxml2', version: '2.3.0' +// implementation 'com.lbx:xTools:2.1.2' } diff --git a/app/libs/androidsvg-1.2.2-beta-1.jar b/app/libs/androidsvg-1.2.2-beta-1.jar deleted file mode 100644 index aa69f00..0000000 --- a/app/libs/androidsvg-1.2.2-beta-1.jar +++ /dev/null Binary files differ diff --git a/app/libs/guava-17.0.jar b/app/libs/guava-17.0.jar deleted file mode 100644 index 661fc74..0000000 --- a/app/libs/guava-17.0.jar +++ /dev/null Binary files differ diff --git a/app/libs/jackson-core-lgpl-1.9.5.jar b/app/libs/jackson-core-lgpl-1.9.5.jar deleted file mode 100644 index 89dc160..0000000 --- a/app/libs/jackson-core-lgpl-1.9.5.jar +++ /dev/null Binary files differ diff --git a/app/libs/jackson-mapper-lgpl-1.9.5.jar b/app/libs/jackson-mapper-lgpl-1.9.5.jar deleted file mode 100644 index 095ffb3..0000000 --- a/app/libs/jackson-mapper-lgpl-1.9.5.jar +++ /dev/null Binary files differ diff --git a/app/libs/jts-1.13.jar b/app/libs/jts-1.13.jar deleted file mode 100644 index bbaa20b..0000000 --- a/app/libs/jts-1.13.jar +++ /dev/null Binary files differ diff --git a/app/libs/kxml2-2.3.0.jar b/app/libs/kxml2-2.3.0.jar deleted file mode 100644 index 6470952..0000000 --- a/app/libs/kxml2-2.3.0.jar +++ /dev/null Binary files differ diff --git a/app/build.gradle b/app/build.gradle index 0614b2f..5ec7f4d 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,15 +1,24 @@ apply plugin: 'com.android.application' android { - compileSdkVersion 29 - buildToolsVersion "29.0.3" + compileSdkVersion 30 + buildToolsVersion "30.0.3" defaultConfig { applicationId "com.casic.smartwellapp" - minSdkVersion 17 - targetSdkVersion 29 - versionCode 8 - versionName "v1.1.2" - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + //备案号sdk版本要求最低24 + minSdkVersion 24 + targetSdkVersion 30 + /** + * 使用中版本如下: + * versionCode 8 + * versionName "v1.1.2" + * + * 待测试上架版本: + * versionCode 9 + * versionName "v1.1.3" + * */ + versionCode 9 + versionName "v1.1.3" multiDexEnabled true } buildTypes { @@ -37,32 +46,50 @@ exclude 'META-INF/LGPL2.1' exclude 'META-INF/services/javax.annotation.processing.Processor' exclude 'META-INF/rxjava.properties' - exclude 'org/codehaus/jackson/impl/VERSION.txt' - exclude 'org/codehaus/jackson/map/VERSION.txt' +// exclude 'org/codehaus/jackson/impl/VERSION.txt' +// exclude 'org/codehaus/jackson/map/VERSION.txt' + } + + //导入aar包 + repositories { + flatDir { + dirs 'libs' + } } } dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') - implementation 'androidx.appcompat:appcompat:1.2.0' - implementation 'androidx.constraintlayout:constraintlayout:2.0.4' - implementation 'pub.devrel:easypermissions:1.3.0' - testImplementation 'junit:junit:4.12' - androidTestImplementation 'androidx.test:runner:1.2.0' - androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0' + //移动警务授权sdk implementation files('libs/OauthLoginJar_V1.0.jar') - implementation 'com.lbx:xTools:2.1.2' - implementation 'org.bouncycastle:bcmail-jdk15on:1.59' - implementation 'org.apache.commons:commons-lang3:3.1' - implementation 'com.alibaba:fastjson:1.2.68' - implementation files('libs/guava-17.0.jar') - implementation files('libs/androidsvg-1.2.2-beta-1.jar') + //山海易绘离线地图 implementation files('libs/EzMapServiceApiForAndroid-1.0.3.0.jar') implementation files('libs/EzRouterAPIForAndroid.v1.0.1.201206151022.jar') - implementation files('libs/jts-1.13.jar') - implementation files('libs/kxml2-2.3.0.jar') implementation files('libs/EzLicenseAPI4Android.jar') implementation files('libs/EzMapApiForAndnroid.3.1.0.2.jar') - implementation files('libs/jackson-core-lgpl-1.9.5.jar') - implementation files('libs/jackson-mapper-lgpl-1.9.5.jar') + //移动警务备案号sdk + implementation(name: 'libfriapkrecord-r1.0.1', ext: 'aar') + implementation 'androidx.appcompat:appcompat:1.2.0' + //Google申请手机相关权限官方库 + implementation group: 'pub.devrel', name: 'easypermissions', version: '3.0.0' + //Google官方Json解析 + implementation group: 'com.google.code.gson', name: 'gson', version: '2.8.6' +// implementation group: 'org.bouncycastle', name: 'bcmail-jdk15on', version: '1.68' + //公共帮助类 +// implementation group: 'org.apache.commons', name: 'commons-lang3', version: '3.1' + //阿里巴巴Json解析库 +// implementation group: 'com.alibaba', name: 'fastjson', version: '1.2.76' + //Google提供的一套工具类 +// implementation group: 'com.google.guava', name: 'guava', version: '30.1.1-jre' + //‎安卓SVG渲染库 +// implementation group: 'com.caverock', name: 'androidsvg', version: '1.4' + //JTS拓扑套件是用于建模和操纵二维线性几何形状的API +// implementation group: 'com.vividsolutions', name: 'jts', version: '1.13' + //Json解析 +// implementation group: 'org.codehaus.jackson', name: 'jackson-core-lgpl', version: '1.9.13' + //Jackson数据映射 +// implementation group: 'org.codehaus.jackson', name: 'jackson-mapper-lgpl', version: '1.9.13' + //xml解析 +// implementation group: 'net.sf.kxml', name: 'kxml2', version: '2.3.0' +// implementation 'com.lbx:xTools:2.1.2' } diff --git a/app/libs/androidsvg-1.2.2-beta-1.jar b/app/libs/androidsvg-1.2.2-beta-1.jar deleted file mode 100644 index aa69f00..0000000 --- a/app/libs/androidsvg-1.2.2-beta-1.jar +++ /dev/null Binary files differ diff --git a/app/libs/guava-17.0.jar b/app/libs/guava-17.0.jar deleted file mode 100644 index 661fc74..0000000 --- a/app/libs/guava-17.0.jar +++ /dev/null Binary files differ diff --git a/app/libs/jackson-core-lgpl-1.9.5.jar b/app/libs/jackson-core-lgpl-1.9.5.jar deleted file mode 100644 index 89dc160..0000000 --- a/app/libs/jackson-core-lgpl-1.9.5.jar +++ /dev/null Binary files differ diff --git a/app/libs/jackson-mapper-lgpl-1.9.5.jar b/app/libs/jackson-mapper-lgpl-1.9.5.jar deleted file mode 100644 index 095ffb3..0000000 --- a/app/libs/jackson-mapper-lgpl-1.9.5.jar +++ /dev/null Binary files differ diff --git a/app/libs/jts-1.13.jar b/app/libs/jts-1.13.jar deleted file mode 100644 index bbaa20b..0000000 --- a/app/libs/jts-1.13.jar +++ /dev/null Binary files differ diff --git a/app/libs/kxml2-2.3.0.jar b/app/libs/kxml2-2.3.0.jar deleted file mode 100644 index 6470952..0000000 --- a/app/libs/kxml2-2.3.0.jar +++ /dev/null Binary files differ diff --git a/app/libs/libfriapkrecord-r1.0.1.aar b/app/libs/libfriapkrecord-r1.0.1.aar new file mode 100644 index 0000000..ad69876 --- /dev/null +++ b/app/libs/libfriapkrecord-r1.0.1.aar Binary files differ diff --git a/app/build.gradle b/app/build.gradle index 0614b2f..5ec7f4d 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,15 +1,24 @@ apply plugin: 'com.android.application' android { - compileSdkVersion 29 - buildToolsVersion "29.0.3" + compileSdkVersion 30 + buildToolsVersion "30.0.3" defaultConfig { applicationId "com.casic.smartwellapp" - minSdkVersion 17 - targetSdkVersion 29 - versionCode 8 - versionName "v1.1.2" - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + //备案号sdk版本要求最低24 + minSdkVersion 24 + targetSdkVersion 30 + /** + * 使用中版本如下: + * versionCode 8 + * versionName "v1.1.2" + * + * 待测试上架版本: + * versionCode 9 + * versionName "v1.1.3" + * */ + versionCode 9 + versionName "v1.1.3" multiDexEnabled true } buildTypes { @@ -37,32 +46,50 @@ exclude 'META-INF/LGPL2.1' exclude 'META-INF/services/javax.annotation.processing.Processor' exclude 'META-INF/rxjava.properties' - exclude 'org/codehaus/jackson/impl/VERSION.txt' - exclude 'org/codehaus/jackson/map/VERSION.txt' +// exclude 'org/codehaus/jackson/impl/VERSION.txt' +// exclude 'org/codehaus/jackson/map/VERSION.txt' + } + + //导入aar包 + repositories { + flatDir { + dirs 'libs' + } } } dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') - implementation 'androidx.appcompat:appcompat:1.2.0' - implementation 'androidx.constraintlayout:constraintlayout:2.0.4' - implementation 'pub.devrel:easypermissions:1.3.0' - testImplementation 'junit:junit:4.12' - androidTestImplementation 'androidx.test:runner:1.2.0' - androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0' + //移动警务授权sdk implementation files('libs/OauthLoginJar_V1.0.jar') - implementation 'com.lbx:xTools:2.1.2' - implementation 'org.bouncycastle:bcmail-jdk15on:1.59' - implementation 'org.apache.commons:commons-lang3:3.1' - implementation 'com.alibaba:fastjson:1.2.68' - implementation files('libs/guava-17.0.jar') - implementation files('libs/androidsvg-1.2.2-beta-1.jar') + //山海易绘离线地图 implementation files('libs/EzMapServiceApiForAndroid-1.0.3.0.jar') implementation files('libs/EzRouterAPIForAndroid.v1.0.1.201206151022.jar') - implementation files('libs/jts-1.13.jar') - implementation files('libs/kxml2-2.3.0.jar') implementation files('libs/EzLicenseAPI4Android.jar') implementation files('libs/EzMapApiForAndnroid.3.1.0.2.jar') - implementation files('libs/jackson-core-lgpl-1.9.5.jar') - implementation files('libs/jackson-mapper-lgpl-1.9.5.jar') + //移动警务备案号sdk + implementation(name: 'libfriapkrecord-r1.0.1', ext: 'aar') + implementation 'androidx.appcompat:appcompat:1.2.0' + //Google申请手机相关权限官方库 + implementation group: 'pub.devrel', name: 'easypermissions', version: '3.0.0' + //Google官方Json解析 + implementation group: 'com.google.code.gson', name: 'gson', version: '2.8.6' +// implementation group: 'org.bouncycastle', name: 'bcmail-jdk15on', version: '1.68' + //公共帮助类 +// implementation group: 'org.apache.commons', name: 'commons-lang3', version: '3.1' + //阿里巴巴Json解析库 +// implementation group: 'com.alibaba', name: 'fastjson', version: '1.2.76' + //Google提供的一套工具类 +// implementation group: 'com.google.guava', name: 'guava', version: '30.1.1-jre' + //‎安卓SVG渲染库 +// implementation group: 'com.caverock', name: 'androidsvg', version: '1.4' + //JTS拓扑套件是用于建模和操纵二维线性几何形状的API +// implementation group: 'com.vividsolutions', name: 'jts', version: '1.13' + //Json解析 +// implementation group: 'org.codehaus.jackson', name: 'jackson-core-lgpl', version: '1.9.13' + //Jackson数据映射 +// implementation group: 'org.codehaus.jackson', name: 'jackson-mapper-lgpl', version: '1.9.13' + //xml解析 +// implementation group: 'net.sf.kxml', name: 'kxml2', version: '2.3.0' +// implementation 'com.lbx:xTools:2.1.2' } diff --git a/app/libs/androidsvg-1.2.2-beta-1.jar b/app/libs/androidsvg-1.2.2-beta-1.jar deleted file mode 100644 index aa69f00..0000000 --- a/app/libs/androidsvg-1.2.2-beta-1.jar +++ /dev/null Binary files differ diff --git a/app/libs/guava-17.0.jar b/app/libs/guava-17.0.jar deleted file mode 100644 index 661fc74..0000000 --- a/app/libs/guava-17.0.jar +++ /dev/null Binary files differ diff --git a/app/libs/jackson-core-lgpl-1.9.5.jar b/app/libs/jackson-core-lgpl-1.9.5.jar deleted file mode 100644 index 89dc160..0000000 --- a/app/libs/jackson-core-lgpl-1.9.5.jar +++ /dev/null Binary files differ diff --git a/app/libs/jackson-mapper-lgpl-1.9.5.jar b/app/libs/jackson-mapper-lgpl-1.9.5.jar deleted file mode 100644 index 095ffb3..0000000 --- a/app/libs/jackson-mapper-lgpl-1.9.5.jar +++ /dev/null Binary files differ diff --git a/app/libs/jts-1.13.jar b/app/libs/jts-1.13.jar deleted file mode 100644 index bbaa20b..0000000 --- a/app/libs/jts-1.13.jar +++ /dev/null Binary files differ diff --git a/app/libs/kxml2-2.3.0.jar b/app/libs/kxml2-2.3.0.jar deleted file mode 100644 index 6470952..0000000 --- a/app/libs/kxml2-2.3.0.jar +++ /dev/null Binary files differ diff --git a/app/libs/libfriapkrecord-r1.0.1.aar b/app/libs/libfriapkrecord-r1.0.1.aar new file mode 100644 index 0000000..ad69876 --- /dev/null +++ b/app/libs/libfriapkrecord-r1.0.1.aar Binary files differ diff --git a/app/src/androidTest/java/com/casic/smartwellapp/ExampleInstrumentedTest.java b/app/src/androidTest/java/com/casic/smartwellapp/ExampleInstrumentedTest.java deleted file mode 100644 index 3013492..0000000 --- a/app/src/androidTest/java/com/casic/smartwellapp/ExampleInstrumentedTest.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.casic.smartwellapp; - -import android.content.Context; - -import androidx.test.InstrumentationRegistry; -import androidx.test.runner.AndroidJUnit4; - -import org.junit.Test; -import org.junit.runner.RunWith; - -import static org.junit.Assert.*; - -/** - * Instrumented test, which will execute on an Android device. - * - * @see Testing documentation - */ -@RunWith(AndroidJUnit4.class) -public class ExampleInstrumentedTest { - @Test - public void useAppContext() { - // Context of the app under test. - Context appContext = InstrumentationRegistry.getTargetContext(); - - assertEquals("com.casic.smartwellapp", appContext.getPackageName()); - } -} diff --git a/app/build.gradle b/app/build.gradle index 0614b2f..5ec7f4d 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,15 +1,24 @@ apply plugin: 'com.android.application' android { - compileSdkVersion 29 - buildToolsVersion "29.0.3" + compileSdkVersion 30 + buildToolsVersion "30.0.3" defaultConfig { applicationId "com.casic.smartwellapp" - minSdkVersion 17 - targetSdkVersion 29 - versionCode 8 - versionName "v1.1.2" - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + //备案号sdk版本要求最低24 + minSdkVersion 24 + targetSdkVersion 30 + /** + * 使用中版本如下: + * versionCode 8 + * versionName "v1.1.2" + * + * 待测试上架版本: + * versionCode 9 + * versionName "v1.1.3" + * */ + versionCode 9 + versionName "v1.1.3" multiDexEnabled true } buildTypes { @@ -37,32 +46,50 @@ exclude 'META-INF/LGPL2.1' exclude 'META-INF/services/javax.annotation.processing.Processor' exclude 'META-INF/rxjava.properties' - exclude 'org/codehaus/jackson/impl/VERSION.txt' - exclude 'org/codehaus/jackson/map/VERSION.txt' +// exclude 'org/codehaus/jackson/impl/VERSION.txt' +// exclude 'org/codehaus/jackson/map/VERSION.txt' + } + + //导入aar包 + repositories { + flatDir { + dirs 'libs' + } } } dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') - implementation 'androidx.appcompat:appcompat:1.2.0' - implementation 'androidx.constraintlayout:constraintlayout:2.0.4' - implementation 'pub.devrel:easypermissions:1.3.0' - testImplementation 'junit:junit:4.12' - androidTestImplementation 'androidx.test:runner:1.2.0' - androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0' + //移动警务授权sdk implementation files('libs/OauthLoginJar_V1.0.jar') - implementation 'com.lbx:xTools:2.1.2' - implementation 'org.bouncycastle:bcmail-jdk15on:1.59' - implementation 'org.apache.commons:commons-lang3:3.1' - implementation 'com.alibaba:fastjson:1.2.68' - implementation files('libs/guava-17.0.jar') - implementation files('libs/androidsvg-1.2.2-beta-1.jar') + //山海易绘离线地图 implementation files('libs/EzMapServiceApiForAndroid-1.0.3.0.jar') implementation files('libs/EzRouterAPIForAndroid.v1.0.1.201206151022.jar') - implementation files('libs/jts-1.13.jar') - implementation files('libs/kxml2-2.3.0.jar') implementation files('libs/EzLicenseAPI4Android.jar') implementation files('libs/EzMapApiForAndnroid.3.1.0.2.jar') - implementation files('libs/jackson-core-lgpl-1.9.5.jar') - implementation files('libs/jackson-mapper-lgpl-1.9.5.jar') + //移动警务备案号sdk + implementation(name: 'libfriapkrecord-r1.0.1', ext: 'aar') + implementation 'androidx.appcompat:appcompat:1.2.0' + //Google申请手机相关权限官方库 + implementation group: 'pub.devrel', name: 'easypermissions', version: '3.0.0' + //Google官方Json解析 + implementation group: 'com.google.code.gson', name: 'gson', version: '2.8.6' +// implementation group: 'org.bouncycastle', name: 'bcmail-jdk15on', version: '1.68' + //公共帮助类 +// implementation group: 'org.apache.commons', name: 'commons-lang3', version: '3.1' + //阿里巴巴Json解析库 +// implementation group: 'com.alibaba', name: 'fastjson', version: '1.2.76' + //Google提供的一套工具类 +// implementation group: 'com.google.guava', name: 'guava', version: '30.1.1-jre' + //‎安卓SVG渲染库 +// implementation group: 'com.caverock', name: 'androidsvg', version: '1.4' + //JTS拓扑套件是用于建模和操纵二维线性几何形状的API +// implementation group: 'com.vividsolutions', name: 'jts', version: '1.13' + //Json解析 +// implementation group: 'org.codehaus.jackson', name: 'jackson-core-lgpl', version: '1.9.13' + //Jackson数据映射 +// implementation group: 'org.codehaus.jackson', name: 'jackson-mapper-lgpl', version: '1.9.13' + //xml解析 +// implementation group: 'net.sf.kxml', name: 'kxml2', version: '2.3.0' +// implementation 'com.lbx:xTools:2.1.2' } diff --git a/app/libs/androidsvg-1.2.2-beta-1.jar b/app/libs/androidsvg-1.2.2-beta-1.jar deleted file mode 100644 index aa69f00..0000000 --- a/app/libs/androidsvg-1.2.2-beta-1.jar +++ /dev/null Binary files differ diff --git a/app/libs/guava-17.0.jar b/app/libs/guava-17.0.jar deleted file mode 100644 index 661fc74..0000000 --- a/app/libs/guava-17.0.jar +++ /dev/null Binary files differ diff --git a/app/libs/jackson-core-lgpl-1.9.5.jar b/app/libs/jackson-core-lgpl-1.9.5.jar deleted file mode 100644 index 89dc160..0000000 --- a/app/libs/jackson-core-lgpl-1.9.5.jar +++ /dev/null Binary files differ diff --git a/app/libs/jackson-mapper-lgpl-1.9.5.jar b/app/libs/jackson-mapper-lgpl-1.9.5.jar deleted file mode 100644 index 095ffb3..0000000 --- a/app/libs/jackson-mapper-lgpl-1.9.5.jar +++ /dev/null Binary files differ diff --git a/app/libs/jts-1.13.jar b/app/libs/jts-1.13.jar deleted file mode 100644 index bbaa20b..0000000 --- a/app/libs/jts-1.13.jar +++ /dev/null Binary files differ diff --git a/app/libs/kxml2-2.3.0.jar b/app/libs/kxml2-2.3.0.jar deleted file mode 100644 index 6470952..0000000 --- a/app/libs/kxml2-2.3.0.jar +++ /dev/null Binary files differ diff --git a/app/libs/libfriapkrecord-r1.0.1.aar b/app/libs/libfriapkrecord-r1.0.1.aar new file mode 100644 index 0000000..ad69876 --- /dev/null +++ b/app/libs/libfriapkrecord-r1.0.1.aar Binary files differ diff --git a/app/src/androidTest/java/com/casic/smartwellapp/ExampleInstrumentedTest.java b/app/src/androidTest/java/com/casic/smartwellapp/ExampleInstrumentedTest.java deleted file mode 100644 index 3013492..0000000 --- a/app/src/androidTest/java/com/casic/smartwellapp/ExampleInstrumentedTest.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.casic.smartwellapp; - -import android.content.Context; - -import androidx.test.InstrumentationRegistry; -import androidx.test.runner.AndroidJUnit4; - -import org.junit.Test; -import org.junit.runner.RunWith; - -import static org.junit.Assert.*; - -/** - * Instrumented test, which will execute on an Android device. - * - * @see Testing documentation - */ -@RunWith(AndroidJUnit4.class) -public class ExampleInstrumentedTest { - @Test - public void useAppContext() { - // Context of the app under test. - Context appContext = InstrumentationRegistry.getTargetContext(); - - assertEquals("com.casic.smartwellapp", appContext.getPackageName()); - } -} diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 4eeda90..bc63fec 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -3,6 +3,9 @@ xmlns:tools="http://schemas.android.com/tools" package="com.casic.smartwellapp"> + @@ -20,22 +23,23 @@ - - - + + + diff --git a/app/build.gradle b/app/build.gradle index 0614b2f..5ec7f4d 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,15 +1,24 @@ apply plugin: 'com.android.application' android { - compileSdkVersion 29 - buildToolsVersion "29.0.3" + compileSdkVersion 30 + buildToolsVersion "30.0.3" defaultConfig { applicationId "com.casic.smartwellapp" - minSdkVersion 17 - targetSdkVersion 29 - versionCode 8 - versionName "v1.1.2" - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + //备案号sdk版本要求最低24 + minSdkVersion 24 + targetSdkVersion 30 + /** + * 使用中版本如下: + * versionCode 8 + * versionName "v1.1.2" + * + * 待测试上架版本: + * versionCode 9 + * versionName "v1.1.3" + * */ + versionCode 9 + versionName "v1.1.3" multiDexEnabled true } buildTypes { @@ -37,32 +46,50 @@ exclude 'META-INF/LGPL2.1' exclude 'META-INF/services/javax.annotation.processing.Processor' exclude 'META-INF/rxjava.properties' - exclude 'org/codehaus/jackson/impl/VERSION.txt' - exclude 'org/codehaus/jackson/map/VERSION.txt' +// exclude 'org/codehaus/jackson/impl/VERSION.txt' +// exclude 'org/codehaus/jackson/map/VERSION.txt' + } + + //导入aar包 + repositories { + flatDir { + dirs 'libs' + } } } dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') - implementation 'androidx.appcompat:appcompat:1.2.0' - implementation 'androidx.constraintlayout:constraintlayout:2.0.4' - implementation 'pub.devrel:easypermissions:1.3.0' - testImplementation 'junit:junit:4.12' - androidTestImplementation 'androidx.test:runner:1.2.0' - androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0' + //移动警务授权sdk implementation files('libs/OauthLoginJar_V1.0.jar') - implementation 'com.lbx:xTools:2.1.2' - implementation 'org.bouncycastle:bcmail-jdk15on:1.59' - implementation 'org.apache.commons:commons-lang3:3.1' - implementation 'com.alibaba:fastjson:1.2.68' - implementation files('libs/guava-17.0.jar') - implementation files('libs/androidsvg-1.2.2-beta-1.jar') + //山海易绘离线地图 implementation files('libs/EzMapServiceApiForAndroid-1.0.3.0.jar') implementation files('libs/EzRouterAPIForAndroid.v1.0.1.201206151022.jar') - implementation files('libs/jts-1.13.jar') - implementation files('libs/kxml2-2.3.0.jar') implementation files('libs/EzLicenseAPI4Android.jar') implementation files('libs/EzMapApiForAndnroid.3.1.0.2.jar') - implementation files('libs/jackson-core-lgpl-1.9.5.jar') - implementation files('libs/jackson-mapper-lgpl-1.9.5.jar') + //移动警务备案号sdk + implementation(name: 'libfriapkrecord-r1.0.1', ext: 'aar') + implementation 'androidx.appcompat:appcompat:1.2.0' + //Google申请手机相关权限官方库 + implementation group: 'pub.devrel', name: 'easypermissions', version: '3.0.0' + //Google官方Json解析 + implementation group: 'com.google.code.gson', name: 'gson', version: '2.8.6' +// implementation group: 'org.bouncycastle', name: 'bcmail-jdk15on', version: '1.68' + //公共帮助类 +// implementation group: 'org.apache.commons', name: 'commons-lang3', version: '3.1' + //阿里巴巴Json解析库 +// implementation group: 'com.alibaba', name: 'fastjson', version: '1.2.76' + //Google提供的一套工具类 +// implementation group: 'com.google.guava', name: 'guava', version: '30.1.1-jre' + //‎安卓SVG渲染库 +// implementation group: 'com.caverock', name: 'androidsvg', version: '1.4' + //JTS拓扑套件是用于建模和操纵二维线性几何形状的API +// implementation group: 'com.vividsolutions', name: 'jts', version: '1.13' + //Json解析 +// implementation group: 'org.codehaus.jackson', name: 'jackson-core-lgpl', version: '1.9.13' + //Jackson数据映射 +// implementation group: 'org.codehaus.jackson', name: 'jackson-mapper-lgpl', version: '1.9.13' + //xml解析 +// implementation group: 'net.sf.kxml', name: 'kxml2', version: '2.3.0' +// implementation 'com.lbx:xTools:2.1.2' } diff --git a/app/libs/androidsvg-1.2.2-beta-1.jar b/app/libs/androidsvg-1.2.2-beta-1.jar deleted file mode 100644 index aa69f00..0000000 --- a/app/libs/androidsvg-1.2.2-beta-1.jar +++ /dev/null Binary files differ diff --git a/app/libs/guava-17.0.jar b/app/libs/guava-17.0.jar deleted file mode 100644 index 661fc74..0000000 --- a/app/libs/guava-17.0.jar +++ /dev/null Binary files differ diff --git a/app/libs/jackson-core-lgpl-1.9.5.jar b/app/libs/jackson-core-lgpl-1.9.5.jar deleted file mode 100644 index 89dc160..0000000 --- a/app/libs/jackson-core-lgpl-1.9.5.jar +++ /dev/null Binary files differ diff --git a/app/libs/jackson-mapper-lgpl-1.9.5.jar b/app/libs/jackson-mapper-lgpl-1.9.5.jar deleted file mode 100644 index 095ffb3..0000000 --- a/app/libs/jackson-mapper-lgpl-1.9.5.jar +++ /dev/null Binary files differ diff --git a/app/libs/jts-1.13.jar b/app/libs/jts-1.13.jar deleted file mode 100644 index bbaa20b..0000000 --- a/app/libs/jts-1.13.jar +++ /dev/null Binary files differ diff --git a/app/libs/kxml2-2.3.0.jar b/app/libs/kxml2-2.3.0.jar deleted file mode 100644 index 6470952..0000000 --- a/app/libs/kxml2-2.3.0.jar +++ /dev/null Binary files differ diff --git a/app/libs/libfriapkrecord-r1.0.1.aar b/app/libs/libfriapkrecord-r1.0.1.aar new file mode 100644 index 0000000..ad69876 --- /dev/null +++ b/app/libs/libfriapkrecord-r1.0.1.aar Binary files differ diff --git a/app/src/androidTest/java/com/casic/smartwellapp/ExampleInstrumentedTest.java b/app/src/androidTest/java/com/casic/smartwellapp/ExampleInstrumentedTest.java deleted file mode 100644 index 3013492..0000000 --- a/app/src/androidTest/java/com/casic/smartwellapp/ExampleInstrumentedTest.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.casic.smartwellapp; - -import android.content.Context; - -import androidx.test.InstrumentationRegistry; -import androidx.test.runner.AndroidJUnit4; - -import org.junit.Test; -import org.junit.runner.RunWith; - -import static org.junit.Assert.*; - -/** - * Instrumented test, which will execute on an Android device. - * - * @see Testing documentation - */ -@RunWith(AndroidJUnit4.class) -public class ExampleInstrumentedTest { - @Test - public void useAppContext() { - // Context of the app under test. - Context appContext = InstrumentationRegistry.getTargetContext(); - - assertEquals("com.casic.smartwellapp", appContext.getPackageName()); - } -} diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 4eeda90..bc63fec 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -3,6 +3,9 @@ xmlns:tools="http://schemas.android.com/tools" package="com.casic.smartwellapp"> + @@ -20,22 +23,23 @@ - - - + + + diff --git a/app/src/main/assets/error.html b/app/src/main/assets/error.html index dcd365f..5abea9c 100644 --- a/app/src/main/assets/error.html +++ b/app/src/main/assets/error.html @@ -1,82 +1,90 @@ - - - - 404 - - - -
- -
-
- -
-
- 请检查网络后重试 -
- - - -
-
- - - + .text-area { + + height: 75px; + } + + .tips { + font-size: 25px; + line-height: 35px; + color: white; + text-align: center; + } + + .tips img { + width: 70%; + } + + .btn { + margin-top: 5%; + text-align: center; + } + + .btn button { + font-size: 30px; + padding: 10px 20px; + border-radius: 20px; + background-color: #ffee00; + color: #ff7700; + margin: 0 auto; + } + + .btn button:hover { + background-color: #ffbb00; + color: #ffff00; + } + + + +
+ +
+
+ +
+
+ 请检查网络后重试 +
+ + + +
+
+ + + diff --git a/app/build.gradle b/app/build.gradle index 0614b2f..5ec7f4d 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,15 +1,24 @@ apply plugin: 'com.android.application' android { - compileSdkVersion 29 - buildToolsVersion "29.0.3" + compileSdkVersion 30 + buildToolsVersion "30.0.3" defaultConfig { applicationId "com.casic.smartwellapp" - minSdkVersion 17 - targetSdkVersion 29 - versionCode 8 - versionName "v1.1.2" - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + //备案号sdk版本要求最低24 + minSdkVersion 24 + targetSdkVersion 30 + /** + * 使用中版本如下: + * versionCode 8 + * versionName "v1.1.2" + * + * 待测试上架版本: + * versionCode 9 + * versionName "v1.1.3" + * */ + versionCode 9 + versionName "v1.1.3" multiDexEnabled true } buildTypes { @@ -37,32 +46,50 @@ exclude 'META-INF/LGPL2.1' exclude 'META-INF/services/javax.annotation.processing.Processor' exclude 'META-INF/rxjava.properties' - exclude 'org/codehaus/jackson/impl/VERSION.txt' - exclude 'org/codehaus/jackson/map/VERSION.txt' +// exclude 'org/codehaus/jackson/impl/VERSION.txt' +// exclude 'org/codehaus/jackson/map/VERSION.txt' + } + + //导入aar包 + repositories { + flatDir { + dirs 'libs' + } } } dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') - implementation 'androidx.appcompat:appcompat:1.2.0' - implementation 'androidx.constraintlayout:constraintlayout:2.0.4' - implementation 'pub.devrel:easypermissions:1.3.0' - testImplementation 'junit:junit:4.12' - androidTestImplementation 'androidx.test:runner:1.2.0' - androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0' + //移动警务授权sdk implementation files('libs/OauthLoginJar_V1.0.jar') - implementation 'com.lbx:xTools:2.1.2' - implementation 'org.bouncycastle:bcmail-jdk15on:1.59' - implementation 'org.apache.commons:commons-lang3:3.1' - implementation 'com.alibaba:fastjson:1.2.68' - implementation files('libs/guava-17.0.jar') - implementation files('libs/androidsvg-1.2.2-beta-1.jar') + //山海易绘离线地图 implementation files('libs/EzMapServiceApiForAndroid-1.0.3.0.jar') implementation files('libs/EzRouterAPIForAndroid.v1.0.1.201206151022.jar') - implementation files('libs/jts-1.13.jar') - implementation files('libs/kxml2-2.3.0.jar') implementation files('libs/EzLicenseAPI4Android.jar') implementation files('libs/EzMapApiForAndnroid.3.1.0.2.jar') - implementation files('libs/jackson-core-lgpl-1.9.5.jar') - implementation files('libs/jackson-mapper-lgpl-1.9.5.jar') + //移动警务备案号sdk + implementation(name: 'libfriapkrecord-r1.0.1', ext: 'aar') + implementation 'androidx.appcompat:appcompat:1.2.0' + //Google申请手机相关权限官方库 + implementation group: 'pub.devrel', name: 'easypermissions', version: '3.0.0' + //Google官方Json解析 + implementation group: 'com.google.code.gson', name: 'gson', version: '2.8.6' +// implementation group: 'org.bouncycastle', name: 'bcmail-jdk15on', version: '1.68' + //公共帮助类 +// implementation group: 'org.apache.commons', name: 'commons-lang3', version: '3.1' + //阿里巴巴Json解析库 +// implementation group: 'com.alibaba', name: 'fastjson', version: '1.2.76' + //Google提供的一套工具类 +// implementation group: 'com.google.guava', name: 'guava', version: '30.1.1-jre' + //‎安卓SVG渲染库 +// implementation group: 'com.caverock', name: 'androidsvg', version: '1.4' + //JTS拓扑套件是用于建模和操纵二维线性几何形状的API +// implementation group: 'com.vividsolutions', name: 'jts', version: '1.13' + //Json解析 +// implementation group: 'org.codehaus.jackson', name: 'jackson-core-lgpl', version: '1.9.13' + //Jackson数据映射 +// implementation group: 'org.codehaus.jackson', name: 'jackson-mapper-lgpl', version: '1.9.13' + //xml解析 +// implementation group: 'net.sf.kxml', name: 'kxml2', version: '2.3.0' +// implementation 'com.lbx:xTools:2.1.2' } diff --git a/app/libs/androidsvg-1.2.2-beta-1.jar b/app/libs/androidsvg-1.2.2-beta-1.jar deleted file mode 100644 index aa69f00..0000000 --- a/app/libs/androidsvg-1.2.2-beta-1.jar +++ /dev/null Binary files differ diff --git a/app/libs/guava-17.0.jar b/app/libs/guava-17.0.jar deleted file mode 100644 index 661fc74..0000000 --- a/app/libs/guava-17.0.jar +++ /dev/null Binary files differ diff --git a/app/libs/jackson-core-lgpl-1.9.5.jar b/app/libs/jackson-core-lgpl-1.9.5.jar deleted file mode 100644 index 89dc160..0000000 --- a/app/libs/jackson-core-lgpl-1.9.5.jar +++ /dev/null Binary files differ diff --git a/app/libs/jackson-mapper-lgpl-1.9.5.jar b/app/libs/jackson-mapper-lgpl-1.9.5.jar deleted file mode 100644 index 095ffb3..0000000 --- a/app/libs/jackson-mapper-lgpl-1.9.5.jar +++ /dev/null Binary files differ diff --git a/app/libs/jts-1.13.jar b/app/libs/jts-1.13.jar deleted file mode 100644 index bbaa20b..0000000 --- a/app/libs/jts-1.13.jar +++ /dev/null Binary files differ diff --git a/app/libs/kxml2-2.3.0.jar b/app/libs/kxml2-2.3.0.jar deleted file mode 100644 index 6470952..0000000 --- a/app/libs/kxml2-2.3.0.jar +++ /dev/null Binary files differ diff --git a/app/libs/libfriapkrecord-r1.0.1.aar b/app/libs/libfriapkrecord-r1.0.1.aar new file mode 100644 index 0000000..ad69876 --- /dev/null +++ b/app/libs/libfriapkrecord-r1.0.1.aar Binary files differ diff --git a/app/src/androidTest/java/com/casic/smartwellapp/ExampleInstrumentedTest.java b/app/src/androidTest/java/com/casic/smartwellapp/ExampleInstrumentedTest.java deleted file mode 100644 index 3013492..0000000 --- a/app/src/androidTest/java/com/casic/smartwellapp/ExampleInstrumentedTest.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.casic.smartwellapp; - -import android.content.Context; - -import androidx.test.InstrumentationRegistry; -import androidx.test.runner.AndroidJUnit4; - -import org.junit.Test; -import org.junit.runner.RunWith; - -import static org.junit.Assert.*; - -/** - * Instrumented test, which will execute on an Android device. - * - * @see Testing documentation - */ -@RunWith(AndroidJUnit4.class) -public class ExampleInstrumentedTest { - @Test - public void useAppContext() { - // Context of the app under test. - Context appContext = InstrumentationRegistry.getTargetContext(); - - assertEquals("com.casic.smartwellapp", appContext.getPackageName()); - } -} diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 4eeda90..bc63fec 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -3,6 +3,9 @@ xmlns:tools="http://schemas.android.com/tools" package="com.casic.smartwellapp"> + @@ -20,22 +23,23 @@ - - - + + + diff --git a/app/src/main/assets/error.html b/app/src/main/assets/error.html index dcd365f..5abea9c 100644 --- a/app/src/main/assets/error.html +++ b/app/src/main/assets/error.html @@ -1,82 +1,90 @@ - - - - 404 - - - -
- -
-
- -
-
- 请检查网络后重试 -
- - - -
-
- - - + .text-area { + + height: 75px; + } + + .tips { + font-size: 25px; + line-height: 35px; + color: white; + text-align: center; + } + + .tips img { + width: 70%; + } + + .btn { + margin-top: 5%; + text-align: center; + } + + .btn button { + font-size: 30px; + padding: 10px 20px; + border-radius: 20px; + background-color: #ffee00; + color: #ff7700; + margin: 0 auto; + } + + .btn button:hover { + background-color: #ffbb00; + color: #ffff00; + } + + + +
+ +
+
+ +
+
+ 请检查网络后重试 +
+ + + +
+
+ + + diff --git a/app/src/main/assets/hello.html b/app/src/main/assets/hello.html index 5c45033..5fde805 100644 --- a/app/src/main/assets/hello.html +++ b/app/src/main/assets/hello.html @@ -1,64 +1,73 @@ - - - - 404 - - - -
-
- - + .airplane { + width: 50%; + margin: 20% 25% 10% 25%; + text-align: center; + } + + .text-area { + + height: 75px; + } + + .tips { + font-size: 25px; + line-height: 35px; + color: white; + text-align: center; + } + + .tips img { + width: 70%; + } + + .btn { + margin-top: 5%; + text-align: center; + } + + .btn button { + font-size: 30px; + padding: 10px 20px; + border-radius: 20px; + background-color: #ffee00; + color: #ff7700; + margin: 0 auto; + } + + .btn button:hover { + background-color: #ffbb00; + color: #ffff00; + } + + + +
+
+ + diff --git a/app/build.gradle b/app/build.gradle index 0614b2f..5ec7f4d 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,15 +1,24 @@ apply plugin: 'com.android.application' android { - compileSdkVersion 29 - buildToolsVersion "29.0.3" + compileSdkVersion 30 + buildToolsVersion "30.0.3" defaultConfig { applicationId "com.casic.smartwellapp" - minSdkVersion 17 - targetSdkVersion 29 - versionCode 8 - versionName "v1.1.2" - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + //备案号sdk版本要求最低24 + minSdkVersion 24 + targetSdkVersion 30 + /** + * 使用中版本如下: + * versionCode 8 + * versionName "v1.1.2" + * + * 待测试上架版本: + * versionCode 9 + * versionName "v1.1.3" + * */ + versionCode 9 + versionName "v1.1.3" multiDexEnabled true } buildTypes { @@ -37,32 +46,50 @@ exclude 'META-INF/LGPL2.1' exclude 'META-INF/services/javax.annotation.processing.Processor' exclude 'META-INF/rxjava.properties' - exclude 'org/codehaus/jackson/impl/VERSION.txt' - exclude 'org/codehaus/jackson/map/VERSION.txt' +// exclude 'org/codehaus/jackson/impl/VERSION.txt' +// exclude 'org/codehaus/jackson/map/VERSION.txt' + } + + //导入aar包 + repositories { + flatDir { + dirs 'libs' + } } } dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') - implementation 'androidx.appcompat:appcompat:1.2.0' - implementation 'androidx.constraintlayout:constraintlayout:2.0.4' - implementation 'pub.devrel:easypermissions:1.3.0' - testImplementation 'junit:junit:4.12' - androidTestImplementation 'androidx.test:runner:1.2.0' - androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0' + //移动警务授权sdk implementation files('libs/OauthLoginJar_V1.0.jar') - implementation 'com.lbx:xTools:2.1.2' - implementation 'org.bouncycastle:bcmail-jdk15on:1.59' - implementation 'org.apache.commons:commons-lang3:3.1' - implementation 'com.alibaba:fastjson:1.2.68' - implementation files('libs/guava-17.0.jar') - implementation files('libs/androidsvg-1.2.2-beta-1.jar') + //山海易绘离线地图 implementation files('libs/EzMapServiceApiForAndroid-1.0.3.0.jar') implementation files('libs/EzRouterAPIForAndroid.v1.0.1.201206151022.jar') - implementation files('libs/jts-1.13.jar') - implementation files('libs/kxml2-2.3.0.jar') implementation files('libs/EzLicenseAPI4Android.jar') implementation files('libs/EzMapApiForAndnroid.3.1.0.2.jar') - implementation files('libs/jackson-core-lgpl-1.9.5.jar') - implementation files('libs/jackson-mapper-lgpl-1.9.5.jar') + //移动警务备案号sdk + implementation(name: 'libfriapkrecord-r1.0.1', ext: 'aar') + implementation 'androidx.appcompat:appcompat:1.2.0' + //Google申请手机相关权限官方库 + implementation group: 'pub.devrel', name: 'easypermissions', version: '3.0.0' + //Google官方Json解析 + implementation group: 'com.google.code.gson', name: 'gson', version: '2.8.6' +// implementation group: 'org.bouncycastle', name: 'bcmail-jdk15on', version: '1.68' + //公共帮助类 +// implementation group: 'org.apache.commons', name: 'commons-lang3', version: '3.1' + //阿里巴巴Json解析库 +// implementation group: 'com.alibaba', name: 'fastjson', version: '1.2.76' + //Google提供的一套工具类 +// implementation group: 'com.google.guava', name: 'guava', version: '30.1.1-jre' + //‎安卓SVG渲染库 +// implementation group: 'com.caverock', name: 'androidsvg', version: '1.4' + //JTS拓扑套件是用于建模和操纵二维线性几何形状的API +// implementation group: 'com.vividsolutions', name: 'jts', version: '1.13' + //Json解析 +// implementation group: 'org.codehaus.jackson', name: 'jackson-core-lgpl', version: '1.9.13' + //Jackson数据映射 +// implementation group: 'org.codehaus.jackson', name: 'jackson-mapper-lgpl', version: '1.9.13' + //xml解析 +// implementation group: 'net.sf.kxml', name: 'kxml2', version: '2.3.0' +// implementation 'com.lbx:xTools:2.1.2' } diff --git a/app/libs/androidsvg-1.2.2-beta-1.jar b/app/libs/androidsvg-1.2.2-beta-1.jar deleted file mode 100644 index aa69f00..0000000 --- a/app/libs/androidsvg-1.2.2-beta-1.jar +++ /dev/null Binary files differ diff --git a/app/libs/guava-17.0.jar b/app/libs/guava-17.0.jar deleted file mode 100644 index 661fc74..0000000 --- a/app/libs/guava-17.0.jar +++ /dev/null Binary files differ diff --git a/app/libs/jackson-core-lgpl-1.9.5.jar b/app/libs/jackson-core-lgpl-1.9.5.jar deleted file mode 100644 index 89dc160..0000000 --- a/app/libs/jackson-core-lgpl-1.9.5.jar +++ /dev/null Binary files differ diff --git a/app/libs/jackson-mapper-lgpl-1.9.5.jar b/app/libs/jackson-mapper-lgpl-1.9.5.jar deleted file mode 100644 index 095ffb3..0000000 --- a/app/libs/jackson-mapper-lgpl-1.9.5.jar +++ /dev/null Binary files differ diff --git a/app/libs/jts-1.13.jar b/app/libs/jts-1.13.jar deleted file mode 100644 index bbaa20b..0000000 --- a/app/libs/jts-1.13.jar +++ /dev/null Binary files differ diff --git a/app/libs/kxml2-2.3.0.jar b/app/libs/kxml2-2.3.0.jar deleted file mode 100644 index 6470952..0000000 --- a/app/libs/kxml2-2.3.0.jar +++ /dev/null Binary files differ diff --git a/app/libs/libfriapkrecord-r1.0.1.aar b/app/libs/libfriapkrecord-r1.0.1.aar new file mode 100644 index 0000000..ad69876 --- /dev/null +++ b/app/libs/libfriapkrecord-r1.0.1.aar Binary files differ diff --git a/app/src/androidTest/java/com/casic/smartwellapp/ExampleInstrumentedTest.java b/app/src/androidTest/java/com/casic/smartwellapp/ExampleInstrumentedTest.java deleted file mode 100644 index 3013492..0000000 --- a/app/src/androidTest/java/com/casic/smartwellapp/ExampleInstrumentedTest.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.casic.smartwellapp; - -import android.content.Context; - -import androidx.test.InstrumentationRegistry; -import androidx.test.runner.AndroidJUnit4; - -import org.junit.Test; -import org.junit.runner.RunWith; - -import static org.junit.Assert.*; - -/** - * Instrumented test, which will execute on an Android device. - * - * @see Testing documentation - */ -@RunWith(AndroidJUnit4.class) -public class ExampleInstrumentedTest { - @Test - public void useAppContext() { - // Context of the app under test. - Context appContext = InstrumentationRegistry.getTargetContext(); - - assertEquals("com.casic.smartwellapp", appContext.getPackageName()); - } -} diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 4eeda90..bc63fec 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -3,6 +3,9 @@ xmlns:tools="http://schemas.android.com/tools" package="com.casic.smartwellapp"> + @@ -20,22 +23,23 @@ - - - + + + diff --git a/app/src/main/assets/error.html b/app/src/main/assets/error.html index dcd365f..5abea9c 100644 --- a/app/src/main/assets/error.html +++ b/app/src/main/assets/error.html @@ -1,82 +1,90 @@ - - - - 404 - - - -
- -
-
- -
-
- 请检查网络后重试 -
- - - -
-
- - - + .text-area { + + height: 75px; + } + + .tips { + font-size: 25px; + line-height: 35px; + color: white; + text-align: center; + } + + .tips img { + width: 70%; + } + + .btn { + margin-top: 5%; + text-align: center; + } + + .btn button { + font-size: 30px; + padding: 10px 20px; + border-radius: 20px; + background-color: #ffee00; + color: #ff7700; + margin: 0 auto; + } + + .btn button:hover { + background-color: #ffbb00; + color: #ffff00; + } + + + +
+ +
+
+ +
+
+ 请检查网络后重试 +
+ + + +
+
+ + + diff --git a/app/src/main/assets/hello.html b/app/src/main/assets/hello.html index 5c45033..5fde805 100644 --- a/app/src/main/assets/hello.html +++ b/app/src/main/assets/hello.html @@ -1,64 +1,73 @@ - - - - 404 - - - -
-
- - + .airplane { + width: 50%; + margin: 20% 25% 10% 25%; + text-align: center; + } + + .text-area { + + height: 75px; + } + + .tips { + font-size: 25px; + line-height: 35px; + color: white; + text-align: center; + } + + .tips img { + width: 70%; + } + + .btn { + margin-top: 5%; + text-align: center; + } + + .btn button { + font-size: 30px; + padding: 10px 20px; + border-radius: 20px; + background-color: #ffee00; + color: #ff7700; + margin: 0 auto; + } + + .btn button:hover { + background-color: #ffbb00; + color: #ffff00; + } + + + +
+
+ + diff --git a/app/src/main/assets/index.html b/app/src/main/assets/index.html index d5b666a..1e55e53 100644 --- a/app/src/main/assets/index.html +++ b/app/src/main/assets/index.html @@ -1 +1,18 @@ -智能闸井
\ No newline at end of file + + + + + + + + 智能闸井 + + + +
+ + + + + diff --git a/app/build.gradle b/app/build.gradle index 0614b2f..5ec7f4d 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,15 +1,24 @@ apply plugin: 'com.android.application' android { - compileSdkVersion 29 - buildToolsVersion "29.0.3" + compileSdkVersion 30 + buildToolsVersion "30.0.3" defaultConfig { applicationId "com.casic.smartwellapp" - minSdkVersion 17 - targetSdkVersion 29 - versionCode 8 - versionName "v1.1.2" - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + //备案号sdk版本要求最低24 + minSdkVersion 24 + targetSdkVersion 30 + /** + * 使用中版本如下: + * versionCode 8 + * versionName "v1.1.2" + * + * 待测试上架版本: + * versionCode 9 + * versionName "v1.1.3" + * */ + versionCode 9 + versionName "v1.1.3" multiDexEnabled true } buildTypes { @@ -37,32 +46,50 @@ exclude 'META-INF/LGPL2.1' exclude 'META-INF/services/javax.annotation.processing.Processor' exclude 'META-INF/rxjava.properties' - exclude 'org/codehaus/jackson/impl/VERSION.txt' - exclude 'org/codehaus/jackson/map/VERSION.txt' +// exclude 'org/codehaus/jackson/impl/VERSION.txt' +// exclude 'org/codehaus/jackson/map/VERSION.txt' + } + + //导入aar包 + repositories { + flatDir { + dirs 'libs' + } } } dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') - implementation 'androidx.appcompat:appcompat:1.2.0' - implementation 'androidx.constraintlayout:constraintlayout:2.0.4' - implementation 'pub.devrel:easypermissions:1.3.0' - testImplementation 'junit:junit:4.12' - androidTestImplementation 'androidx.test:runner:1.2.0' - androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0' + //移动警务授权sdk implementation files('libs/OauthLoginJar_V1.0.jar') - implementation 'com.lbx:xTools:2.1.2' - implementation 'org.bouncycastle:bcmail-jdk15on:1.59' - implementation 'org.apache.commons:commons-lang3:3.1' - implementation 'com.alibaba:fastjson:1.2.68' - implementation files('libs/guava-17.0.jar') - implementation files('libs/androidsvg-1.2.2-beta-1.jar') + //山海易绘离线地图 implementation files('libs/EzMapServiceApiForAndroid-1.0.3.0.jar') implementation files('libs/EzRouterAPIForAndroid.v1.0.1.201206151022.jar') - implementation files('libs/jts-1.13.jar') - implementation files('libs/kxml2-2.3.0.jar') implementation files('libs/EzLicenseAPI4Android.jar') implementation files('libs/EzMapApiForAndnroid.3.1.0.2.jar') - implementation files('libs/jackson-core-lgpl-1.9.5.jar') - implementation files('libs/jackson-mapper-lgpl-1.9.5.jar') + //移动警务备案号sdk + implementation(name: 'libfriapkrecord-r1.0.1', ext: 'aar') + implementation 'androidx.appcompat:appcompat:1.2.0' + //Google申请手机相关权限官方库 + implementation group: 'pub.devrel', name: 'easypermissions', version: '3.0.0' + //Google官方Json解析 + implementation group: 'com.google.code.gson', name: 'gson', version: '2.8.6' +// implementation group: 'org.bouncycastle', name: 'bcmail-jdk15on', version: '1.68' + //公共帮助类 +// implementation group: 'org.apache.commons', name: 'commons-lang3', version: '3.1' + //阿里巴巴Json解析库 +// implementation group: 'com.alibaba', name: 'fastjson', version: '1.2.76' + //Google提供的一套工具类 +// implementation group: 'com.google.guava', name: 'guava', version: '30.1.1-jre' + //‎安卓SVG渲染库 +// implementation group: 'com.caverock', name: 'androidsvg', version: '1.4' + //JTS拓扑套件是用于建模和操纵二维线性几何形状的API +// implementation group: 'com.vividsolutions', name: 'jts', version: '1.13' + //Json解析 +// implementation group: 'org.codehaus.jackson', name: 'jackson-core-lgpl', version: '1.9.13' + //Jackson数据映射 +// implementation group: 'org.codehaus.jackson', name: 'jackson-mapper-lgpl', version: '1.9.13' + //xml解析 +// implementation group: 'net.sf.kxml', name: 'kxml2', version: '2.3.0' +// implementation 'com.lbx:xTools:2.1.2' } diff --git a/app/libs/androidsvg-1.2.2-beta-1.jar b/app/libs/androidsvg-1.2.2-beta-1.jar deleted file mode 100644 index aa69f00..0000000 --- a/app/libs/androidsvg-1.2.2-beta-1.jar +++ /dev/null Binary files differ diff --git a/app/libs/guava-17.0.jar b/app/libs/guava-17.0.jar deleted file mode 100644 index 661fc74..0000000 --- a/app/libs/guava-17.0.jar +++ /dev/null Binary files differ diff --git a/app/libs/jackson-core-lgpl-1.9.5.jar b/app/libs/jackson-core-lgpl-1.9.5.jar deleted file mode 100644 index 89dc160..0000000 --- a/app/libs/jackson-core-lgpl-1.9.5.jar +++ /dev/null Binary files differ diff --git a/app/libs/jackson-mapper-lgpl-1.9.5.jar b/app/libs/jackson-mapper-lgpl-1.9.5.jar deleted file mode 100644 index 095ffb3..0000000 --- a/app/libs/jackson-mapper-lgpl-1.9.5.jar +++ /dev/null Binary files differ diff --git a/app/libs/jts-1.13.jar b/app/libs/jts-1.13.jar deleted file mode 100644 index bbaa20b..0000000 --- a/app/libs/jts-1.13.jar +++ /dev/null Binary files differ diff --git a/app/libs/kxml2-2.3.0.jar b/app/libs/kxml2-2.3.0.jar deleted file mode 100644 index 6470952..0000000 --- a/app/libs/kxml2-2.3.0.jar +++ /dev/null Binary files differ diff --git a/app/libs/libfriapkrecord-r1.0.1.aar b/app/libs/libfriapkrecord-r1.0.1.aar new file mode 100644 index 0000000..ad69876 --- /dev/null +++ b/app/libs/libfriapkrecord-r1.0.1.aar Binary files differ diff --git a/app/src/androidTest/java/com/casic/smartwellapp/ExampleInstrumentedTest.java b/app/src/androidTest/java/com/casic/smartwellapp/ExampleInstrumentedTest.java deleted file mode 100644 index 3013492..0000000 --- a/app/src/androidTest/java/com/casic/smartwellapp/ExampleInstrumentedTest.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.casic.smartwellapp; - -import android.content.Context; - -import androidx.test.InstrumentationRegistry; -import androidx.test.runner.AndroidJUnit4; - -import org.junit.Test; -import org.junit.runner.RunWith; - -import static org.junit.Assert.*; - -/** - * Instrumented test, which will execute on an Android device. - * - * @see Testing documentation - */ -@RunWith(AndroidJUnit4.class) -public class ExampleInstrumentedTest { - @Test - public void useAppContext() { - // Context of the app under test. - Context appContext = InstrumentationRegistry.getTargetContext(); - - assertEquals("com.casic.smartwellapp", appContext.getPackageName()); - } -} diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 4eeda90..bc63fec 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -3,6 +3,9 @@ xmlns:tools="http://schemas.android.com/tools" package="com.casic.smartwellapp"> + @@ -20,22 +23,23 @@ - - - + + + diff --git a/app/src/main/assets/error.html b/app/src/main/assets/error.html index dcd365f..5abea9c 100644 --- a/app/src/main/assets/error.html +++ b/app/src/main/assets/error.html @@ -1,82 +1,90 @@ - - - - 404 - - - -
- -
-
- -
-
- 请检查网络后重试 -
- - - -
-
- - - + .text-area { + + height: 75px; + } + + .tips { + font-size: 25px; + line-height: 35px; + color: white; + text-align: center; + } + + .tips img { + width: 70%; + } + + .btn { + margin-top: 5%; + text-align: center; + } + + .btn button { + font-size: 30px; + padding: 10px 20px; + border-radius: 20px; + background-color: #ffee00; + color: #ff7700; + margin: 0 auto; + } + + .btn button:hover { + background-color: #ffbb00; + color: #ffff00; + } + + + +
+ +
+
+ +
+
+ 请检查网络后重试 +
+ + + +
+
+ + + diff --git a/app/src/main/assets/hello.html b/app/src/main/assets/hello.html index 5c45033..5fde805 100644 --- a/app/src/main/assets/hello.html +++ b/app/src/main/assets/hello.html @@ -1,64 +1,73 @@ - - - - 404 - - - -
-
- - + .airplane { + width: 50%; + margin: 20% 25% 10% 25%; + text-align: center; + } + + .text-area { + + height: 75px; + } + + .tips { + font-size: 25px; + line-height: 35px; + color: white; + text-align: center; + } + + .tips img { + width: 70%; + } + + .btn { + margin-top: 5%; + text-align: center; + } + + .btn button { + font-size: 30px; + padding: 10px 20px; + border-radius: 20px; + background-color: #ffee00; + color: #ff7700; + margin: 0 auto; + } + + .btn button:hover { + background-color: #ffbb00; + color: #ffff00; + } + + + +
+
+ + diff --git a/app/src/main/assets/index.html b/app/src/main/assets/index.html index d5b666a..1e55e53 100644 --- a/app/src/main/assets/index.html +++ b/app/src/main/assets/index.html @@ -1 +1,18 @@ -智能闸井
\ No newline at end of file + + + + + + + + 智能闸井 + + + +
+ + + + + diff --git a/app/src/main/assets/map.html b/app/src/main/assets/map.html index 6665800..d9f8d04 100644 --- a/app/src/main/assets/map.html +++ b/app/src/main/assets/map.html @@ -1,79 +1,79 @@ - - - - - - easyMap JavaScript API Example: simple + + + + + + easyMap JavaScript API Example: simple - - + + - - - -
- - - + var pIcon = new Icon(); // 构造一个图标类 + pIcon.image = "static/images/location.png"; + pIcon.height = 16; + pIcon.width = 16; + var strMsg = theRequest.pointname; + var marker = new Marker(centerP, pIcon); // 构造一个标记叠加对象 + uEzMap.addOverlay(marker); // 将标记叠加对象添加到地图中 + // 构造鹰眼对象 + var ov = new OverView(); + // 设置鹰眼的宽度,单位为像素px + ov.width = 200; + // 设置鹰眼的高度 + ov.height = 200; + // 添加鹰眼对象到地图对象中 + uEzMap.addOverView(ov); + } + + + diff --git a/app/build.gradle b/app/build.gradle index 0614b2f..5ec7f4d 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,15 +1,24 @@ apply plugin: 'com.android.application' android { - compileSdkVersion 29 - buildToolsVersion "29.0.3" + compileSdkVersion 30 + buildToolsVersion "30.0.3" defaultConfig { applicationId "com.casic.smartwellapp" - minSdkVersion 17 - targetSdkVersion 29 - versionCode 8 - versionName "v1.1.2" - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + //备案号sdk版本要求最低24 + minSdkVersion 24 + targetSdkVersion 30 + /** + * 使用中版本如下: + * versionCode 8 + * versionName "v1.1.2" + * + * 待测试上架版本: + * versionCode 9 + * versionName "v1.1.3" + * */ + versionCode 9 + versionName "v1.1.3" multiDexEnabled true } buildTypes { @@ -37,32 +46,50 @@ exclude 'META-INF/LGPL2.1' exclude 'META-INF/services/javax.annotation.processing.Processor' exclude 'META-INF/rxjava.properties' - exclude 'org/codehaus/jackson/impl/VERSION.txt' - exclude 'org/codehaus/jackson/map/VERSION.txt' +// exclude 'org/codehaus/jackson/impl/VERSION.txt' +// exclude 'org/codehaus/jackson/map/VERSION.txt' + } + + //导入aar包 + repositories { + flatDir { + dirs 'libs' + } } } dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') - implementation 'androidx.appcompat:appcompat:1.2.0' - implementation 'androidx.constraintlayout:constraintlayout:2.0.4' - implementation 'pub.devrel:easypermissions:1.3.0' - testImplementation 'junit:junit:4.12' - androidTestImplementation 'androidx.test:runner:1.2.0' - androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0' + //移动警务授权sdk implementation files('libs/OauthLoginJar_V1.0.jar') - implementation 'com.lbx:xTools:2.1.2' - implementation 'org.bouncycastle:bcmail-jdk15on:1.59' - implementation 'org.apache.commons:commons-lang3:3.1' - implementation 'com.alibaba:fastjson:1.2.68' - implementation files('libs/guava-17.0.jar') - implementation files('libs/androidsvg-1.2.2-beta-1.jar') + //山海易绘离线地图 implementation files('libs/EzMapServiceApiForAndroid-1.0.3.0.jar') implementation files('libs/EzRouterAPIForAndroid.v1.0.1.201206151022.jar') - implementation files('libs/jts-1.13.jar') - implementation files('libs/kxml2-2.3.0.jar') implementation files('libs/EzLicenseAPI4Android.jar') implementation files('libs/EzMapApiForAndnroid.3.1.0.2.jar') - implementation files('libs/jackson-core-lgpl-1.9.5.jar') - implementation files('libs/jackson-mapper-lgpl-1.9.5.jar') + //移动警务备案号sdk + implementation(name: 'libfriapkrecord-r1.0.1', ext: 'aar') + implementation 'androidx.appcompat:appcompat:1.2.0' + //Google申请手机相关权限官方库 + implementation group: 'pub.devrel', name: 'easypermissions', version: '3.0.0' + //Google官方Json解析 + implementation group: 'com.google.code.gson', name: 'gson', version: '2.8.6' +// implementation group: 'org.bouncycastle', name: 'bcmail-jdk15on', version: '1.68' + //公共帮助类 +// implementation group: 'org.apache.commons', name: 'commons-lang3', version: '3.1' + //阿里巴巴Json解析库 +// implementation group: 'com.alibaba', name: 'fastjson', version: '1.2.76' + //Google提供的一套工具类 +// implementation group: 'com.google.guava', name: 'guava', version: '30.1.1-jre' + //‎安卓SVG渲染库 +// implementation group: 'com.caverock', name: 'androidsvg', version: '1.4' + //JTS拓扑套件是用于建模和操纵二维线性几何形状的API +// implementation group: 'com.vividsolutions', name: 'jts', version: '1.13' + //Json解析 +// implementation group: 'org.codehaus.jackson', name: 'jackson-core-lgpl', version: '1.9.13' + //Jackson数据映射 +// implementation group: 'org.codehaus.jackson', name: 'jackson-mapper-lgpl', version: '1.9.13' + //xml解析 +// implementation group: 'net.sf.kxml', name: 'kxml2', version: '2.3.0' +// implementation 'com.lbx:xTools:2.1.2' } diff --git a/app/libs/androidsvg-1.2.2-beta-1.jar b/app/libs/androidsvg-1.2.2-beta-1.jar deleted file mode 100644 index aa69f00..0000000 --- a/app/libs/androidsvg-1.2.2-beta-1.jar +++ /dev/null Binary files differ diff --git a/app/libs/guava-17.0.jar b/app/libs/guava-17.0.jar deleted file mode 100644 index 661fc74..0000000 --- a/app/libs/guava-17.0.jar +++ /dev/null Binary files differ diff --git a/app/libs/jackson-core-lgpl-1.9.5.jar b/app/libs/jackson-core-lgpl-1.9.5.jar deleted file mode 100644 index 89dc160..0000000 --- a/app/libs/jackson-core-lgpl-1.9.5.jar +++ /dev/null Binary files differ diff --git a/app/libs/jackson-mapper-lgpl-1.9.5.jar b/app/libs/jackson-mapper-lgpl-1.9.5.jar deleted file mode 100644 index 095ffb3..0000000 --- a/app/libs/jackson-mapper-lgpl-1.9.5.jar +++ /dev/null Binary files differ diff --git a/app/libs/jts-1.13.jar b/app/libs/jts-1.13.jar deleted file mode 100644 index bbaa20b..0000000 --- a/app/libs/jts-1.13.jar +++ /dev/null Binary files differ diff --git a/app/libs/kxml2-2.3.0.jar b/app/libs/kxml2-2.3.0.jar deleted file mode 100644 index 6470952..0000000 --- a/app/libs/kxml2-2.3.0.jar +++ /dev/null Binary files differ diff --git a/app/libs/libfriapkrecord-r1.0.1.aar b/app/libs/libfriapkrecord-r1.0.1.aar new file mode 100644 index 0000000..ad69876 --- /dev/null +++ b/app/libs/libfriapkrecord-r1.0.1.aar Binary files differ diff --git a/app/src/androidTest/java/com/casic/smartwellapp/ExampleInstrumentedTest.java b/app/src/androidTest/java/com/casic/smartwellapp/ExampleInstrumentedTest.java deleted file mode 100644 index 3013492..0000000 --- a/app/src/androidTest/java/com/casic/smartwellapp/ExampleInstrumentedTest.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.casic.smartwellapp; - -import android.content.Context; - -import androidx.test.InstrumentationRegistry; -import androidx.test.runner.AndroidJUnit4; - -import org.junit.Test; -import org.junit.runner.RunWith; - -import static org.junit.Assert.*; - -/** - * Instrumented test, which will execute on an Android device. - * - * @see Testing documentation - */ -@RunWith(AndroidJUnit4.class) -public class ExampleInstrumentedTest { - @Test - public void useAppContext() { - // Context of the app under test. - Context appContext = InstrumentationRegistry.getTargetContext(); - - assertEquals("com.casic.smartwellapp", appContext.getPackageName()); - } -} diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 4eeda90..bc63fec 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -3,6 +3,9 @@ xmlns:tools="http://schemas.android.com/tools" package="com.casic.smartwellapp"> + @@ -20,22 +23,23 @@ - - - + + + diff --git a/app/src/main/assets/error.html b/app/src/main/assets/error.html index dcd365f..5abea9c 100644 --- a/app/src/main/assets/error.html +++ b/app/src/main/assets/error.html @@ -1,82 +1,90 @@ - - - - 404 - - - -
- -
-
- -
-
- 请检查网络后重试 -
- - - -
-
- - - + .text-area { + + height: 75px; + } + + .tips { + font-size: 25px; + line-height: 35px; + color: white; + text-align: center; + } + + .tips img { + width: 70%; + } + + .btn { + margin-top: 5%; + text-align: center; + } + + .btn button { + font-size: 30px; + padding: 10px 20px; + border-radius: 20px; + background-color: #ffee00; + color: #ff7700; + margin: 0 auto; + } + + .btn button:hover { + background-color: #ffbb00; + color: #ffff00; + } + + + +
+ +
+
+ +
+
+ 请检查网络后重试 +
+ + + +
+
+ + + diff --git a/app/src/main/assets/hello.html b/app/src/main/assets/hello.html index 5c45033..5fde805 100644 --- a/app/src/main/assets/hello.html +++ b/app/src/main/assets/hello.html @@ -1,64 +1,73 @@ - - - - 404 - - - -
-
- - + .airplane { + width: 50%; + margin: 20% 25% 10% 25%; + text-align: center; + } + + .text-area { + + height: 75px; + } + + .tips { + font-size: 25px; + line-height: 35px; + color: white; + text-align: center; + } + + .tips img { + width: 70%; + } + + .btn { + margin-top: 5%; + text-align: center; + } + + .btn button { + font-size: 30px; + padding: 10px 20px; + border-radius: 20px; + background-color: #ffee00; + color: #ff7700; + margin: 0 auto; + } + + .btn button:hover { + background-color: #ffbb00; + color: #ffff00; + } + + + +
+
+ + diff --git a/app/src/main/assets/index.html b/app/src/main/assets/index.html index d5b666a..1e55e53 100644 --- a/app/src/main/assets/index.html +++ b/app/src/main/assets/index.html @@ -1 +1,18 @@ -智能闸井
\ No newline at end of file + + + + + + + + 智能闸井 + + + +
+ + + + + diff --git a/app/src/main/assets/map.html b/app/src/main/assets/map.html index 6665800..d9f8d04 100644 --- a/app/src/main/assets/map.html +++ b/app/src/main/assets/map.html @@ -1,79 +1,79 @@ - - - - - - easyMap JavaScript API Example: simple + + + + + + easyMap JavaScript API Example: simple - - + + - - - -
- - - + var pIcon = new Icon(); // 构造一个图标类 + pIcon.image = "static/images/location.png"; + pIcon.height = 16; + pIcon.width = 16; + var strMsg = theRequest.pointname; + var marker = new Marker(centerP, pIcon); // 构造一个标记叠加对象 + uEzMap.addOverlay(marker); // 将标记叠加对象添加到地图中 + // 构造鹰眼对象 + var ov = new OverView(); + // 设置鹰眼的宽度,单位为像素px + ov.width = 200; + // 设置鹰眼的高度 + ov.height = 200; + // 添加鹰眼对象到地图对象中 + uEzMap.addOverView(ov); + } + + + diff --git a/app/src/main/java/com/casic/smartwellapp/Entity/Constant.java b/app/src/main/java/com/casic/smartwellapp/Entity/Constant.java index 66d61e1..99c2ff3 100644 --- a/app/src/main/java/com/casic/smartwellapp/Entity/Constant.java +++ b/app/src/main/java/com/casic/smartwellapp/Entity/Constant.java @@ -1,11 +1,9 @@ package com.casic.smartwellapp.Entity; import android.Manifest; -import android.os.Environment; public class Constant { - public static final String LICENSE_PATH = Environment.getExternalStorageDirectory() + "/PGIS/license/EzServiceClient4Android.lic"; - // public static final String LICENSE_PATH = "file:///android_asset/EzServiceClient4Android.lic"; public static final int PERMISSIONS_CODE = 11; - public static final String[] USER_PERMISSIONS = {Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE}; + public static final String[] USER_PERMISSIONS = {Manifest.permission.READ_EXTERNAL_STORAGE, + Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.READ_PHONE_STATE}; } diff --git a/app/build.gradle b/app/build.gradle index 0614b2f..5ec7f4d 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,15 +1,24 @@ apply plugin: 'com.android.application' android { - compileSdkVersion 29 - buildToolsVersion "29.0.3" + compileSdkVersion 30 + buildToolsVersion "30.0.3" defaultConfig { applicationId "com.casic.smartwellapp" - minSdkVersion 17 - targetSdkVersion 29 - versionCode 8 - versionName "v1.1.2" - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + //备案号sdk版本要求最低24 + minSdkVersion 24 + targetSdkVersion 30 + /** + * 使用中版本如下: + * versionCode 8 + * versionName "v1.1.2" + * + * 待测试上架版本: + * versionCode 9 + * versionName "v1.1.3" + * */ + versionCode 9 + versionName "v1.1.3" multiDexEnabled true } buildTypes { @@ -37,32 +46,50 @@ exclude 'META-INF/LGPL2.1' exclude 'META-INF/services/javax.annotation.processing.Processor' exclude 'META-INF/rxjava.properties' - exclude 'org/codehaus/jackson/impl/VERSION.txt' - exclude 'org/codehaus/jackson/map/VERSION.txt' +// exclude 'org/codehaus/jackson/impl/VERSION.txt' +// exclude 'org/codehaus/jackson/map/VERSION.txt' + } + + //导入aar包 + repositories { + flatDir { + dirs 'libs' + } } } dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') - implementation 'androidx.appcompat:appcompat:1.2.0' - implementation 'androidx.constraintlayout:constraintlayout:2.0.4' - implementation 'pub.devrel:easypermissions:1.3.0' - testImplementation 'junit:junit:4.12' - androidTestImplementation 'androidx.test:runner:1.2.0' - androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0' + //移动警务授权sdk implementation files('libs/OauthLoginJar_V1.0.jar') - implementation 'com.lbx:xTools:2.1.2' - implementation 'org.bouncycastle:bcmail-jdk15on:1.59' - implementation 'org.apache.commons:commons-lang3:3.1' - implementation 'com.alibaba:fastjson:1.2.68' - implementation files('libs/guava-17.0.jar') - implementation files('libs/androidsvg-1.2.2-beta-1.jar') + //山海易绘离线地图 implementation files('libs/EzMapServiceApiForAndroid-1.0.3.0.jar') implementation files('libs/EzRouterAPIForAndroid.v1.0.1.201206151022.jar') - implementation files('libs/jts-1.13.jar') - implementation files('libs/kxml2-2.3.0.jar') implementation files('libs/EzLicenseAPI4Android.jar') implementation files('libs/EzMapApiForAndnroid.3.1.0.2.jar') - implementation files('libs/jackson-core-lgpl-1.9.5.jar') - implementation files('libs/jackson-mapper-lgpl-1.9.5.jar') + //移动警务备案号sdk + implementation(name: 'libfriapkrecord-r1.0.1', ext: 'aar') + implementation 'androidx.appcompat:appcompat:1.2.0' + //Google申请手机相关权限官方库 + implementation group: 'pub.devrel', name: 'easypermissions', version: '3.0.0' + //Google官方Json解析 + implementation group: 'com.google.code.gson', name: 'gson', version: '2.8.6' +// implementation group: 'org.bouncycastle', name: 'bcmail-jdk15on', version: '1.68' + //公共帮助类 +// implementation group: 'org.apache.commons', name: 'commons-lang3', version: '3.1' + //阿里巴巴Json解析库 +// implementation group: 'com.alibaba', name: 'fastjson', version: '1.2.76' + //Google提供的一套工具类 +// implementation group: 'com.google.guava', name: 'guava', version: '30.1.1-jre' + //‎安卓SVG渲染库 +// implementation group: 'com.caverock', name: 'androidsvg', version: '1.4' + //JTS拓扑套件是用于建模和操纵二维线性几何形状的API +// implementation group: 'com.vividsolutions', name: 'jts', version: '1.13' + //Json解析 +// implementation group: 'org.codehaus.jackson', name: 'jackson-core-lgpl', version: '1.9.13' + //Jackson数据映射 +// implementation group: 'org.codehaus.jackson', name: 'jackson-mapper-lgpl', version: '1.9.13' + //xml解析 +// implementation group: 'net.sf.kxml', name: 'kxml2', version: '2.3.0' +// implementation 'com.lbx:xTools:2.1.2' } diff --git a/app/libs/androidsvg-1.2.2-beta-1.jar b/app/libs/androidsvg-1.2.2-beta-1.jar deleted file mode 100644 index aa69f00..0000000 --- a/app/libs/androidsvg-1.2.2-beta-1.jar +++ /dev/null Binary files differ diff --git a/app/libs/guava-17.0.jar b/app/libs/guava-17.0.jar deleted file mode 100644 index 661fc74..0000000 --- a/app/libs/guava-17.0.jar +++ /dev/null Binary files differ diff --git a/app/libs/jackson-core-lgpl-1.9.5.jar b/app/libs/jackson-core-lgpl-1.9.5.jar deleted file mode 100644 index 89dc160..0000000 --- a/app/libs/jackson-core-lgpl-1.9.5.jar +++ /dev/null Binary files differ diff --git a/app/libs/jackson-mapper-lgpl-1.9.5.jar b/app/libs/jackson-mapper-lgpl-1.9.5.jar deleted file mode 100644 index 095ffb3..0000000 --- a/app/libs/jackson-mapper-lgpl-1.9.5.jar +++ /dev/null Binary files differ diff --git a/app/libs/jts-1.13.jar b/app/libs/jts-1.13.jar deleted file mode 100644 index bbaa20b..0000000 --- a/app/libs/jts-1.13.jar +++ /dev/null Binary files differ diff --git a/app/libs/kxml2-2.3.0.jar b/app/libs/kxml2-2.3.0.jar deleted file mode 100644 index 6470952..0000000 --- a/app/libs/kxml2-2.3.0.jar +++ /dev/null Binary files differ diff --git a/app/libs/libfriapkrecord-r1.0.1.aar b/app/libs/libfriapkrecord-r1.0.1.aar new file mode 100644 index 0000000..ad69876 --- /dev/null +++ b/app/libs/libfriapkrecord-r1.0.1.aar Binary files differ diff --git a/app/src/androidTest/java/com/casic/smartwellapp/ExampleInstrumentedTest.java b/app/src/androidTest/java/com/casic/smartwellapp/ExampleInstrumentedTest.java deleted file mode 100644 index 3013492..0000000 --- a/app/src/androidTest/java/com/casic/smartwellapp/ExampleInstrumentedTest.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.casic.smartwellapp; - -import android.content.Context; - -import androidx.test.InstrumentationRegistry; -import androidx.test.runner.AndroidJUnit4; - -import org.junit.Test; -import org.junit.runner.RunWith; - -import static org.junit.Assert.*; - -/** - * Instrumented test, which will execute on an Android device. - * - * @see Testing documentation - */ -@RunWith(AndroidJUnit4.class) -public class ExampleInstrumentedTest { - @Test - public void useAppContext() { - // Context of the app under test. - Context appContext = InstrumentationRegistry.getTargetContext(); - - assertEquals("com.casic.smartwellapp", appContext.getPackageName()); - } -} diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 4eeda90..bc63fec 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -3,6 +3,9 @@ xmlns:tools="http://schemas.android.com/tools" package="com.casic.smartwellapp"> + @@ -20,22 +23,23 @@ - - - + + + diff --git a/app/src/main/assets/error.html b/app/src/main/assets/error.html index dcd365f..5abea9c 100644 --- a/app/src/main/assets/error.html +++ b/app/src/main/assets/error.html @@ -1,82 +1,90 @@ - - - - 404 - - - -
- -
-
- -
-
- 请检查网络后重试 -
- - - -
-
- - - + .text-area { + + height: 75px; + } + + .tips { + font-size: 25px; + line-height: 35px; + color: white; + text-align: center; + } + + .tips img { + width: 70%; + } + + .btn { + margin-top: 5%; + text-align: center; + } + + .btn button { + font-size: 30px; + padding: 10px 20px; + border-radius: 20px; + background-color: #ffee00; + color: #ff7700; + margin: 0 auto; + } + + .btn button:hover { + background-color: #ffbb00; + color: #ffff00; + } + + + +
+ +
+
+ +
+
+ 请检查网络后重试 +
+ + + +
+
+ + + diff --git a/app/src/main/assets/hello.html b/app/src/main/assets/hello.html index 5c45033..5fde805 100644 --- a/app/src/main/assets/hello.html +++ b/app/src/main/assets/hello.html @@ -1,64 +1,73 @@ - - - - 404 - - - -
-
- - + .airplane { + width: 50%; + margin: 20% 25% 10% 25%; + text-align: center; + } + + .text-area { + + height: 75px; + } + + .tips { + font-size: 25px; + line-height: 35px; + color: white; + text-align: center; + } + + .tips img { + width: 70%; + } + + .btn { + margin-top: 5%; + text-align: center; + } + + .btn button { + font-size: 30px; + padding: 10px 20px; + border-radius: 20px; + background-color: #ffee00; + color: #ff7700; + margin: 0 auto; + } + + .btn button:hover { + background-color: #ffbb00; + color: #ffff00; + } + + + +
+
+ + diff --git a/app/src/main/assets/index.html b/app/src/main/assets/index.html index d5b666a..1e55e53 100644 --- a/app/src/main/assets/index.html +++ b/app/src/main/assets/index.html @@ -1 +1,18 @@ -智能闸井
\ No newline at end of file + + + + + + + + 智能闸井 + + + +
+ + + + + diff --git a/app/src/main/assets/map.html b/app/src/main/assets/map.html index 6665800..d9f8d04 100644 --- a/app/src/main/assets/map.html +++ b/app/src/main/assets/map.html @@ -1,79 +1,79 @@ - - - - - - easyMap JavaScript API Example: simple + + + + + + easyMap JavaScript API Example: simple - - + + - - - -
- - - + var pIcon = new Icon(); // 构造一个图标类 + pIcon.image = "static/images/location.png"; + pIcon.height = 16; + pIcon.width = 16; + var strMsg = theRequest.pointname; + var marker = new Marker(centerP, pIcon); // 构造一个标记叠加对象 + uEzMap.addOverlay(marker); // 将标记叠加对象添加到地图中 + // 构造鹰眼对象 + var ov = new OverView(); + // 设置鹰眼的宽度,单位为像素px + ov.width = 200; + // 设置鹰眼的高度 + ov.height = 200; + // 添加鹰眼对象到地图对象中 + uEzMap.addOverView(ov); + } + + + diff --git a/app/src/main/java/com/casic/smartwellapp/Entity/Constant.java b/app/src/main/java/com/casic/smartwellapp/Entity/Constant.java index 66d61e1..99c2ff3 100644 --- a/app/src/main/java/com/casic/smartwellapp/Entity/Constant.java +++ b/app/src/main/java/com/casic/smartwellapp/Entity/Constant.java @@ -1,11 +1,9 @@ package com.casic.smartwellapp.Entity; import android.Manifest; -import android.os.Environment; public class Constant { - public static final String LICENSE_PATH = Environment.getExternalStorageDirectory() + "/PGIS/license/EzServiceClient4Android.lic"; - // public static final String LICENSE_PATH = "file:///android_asset/EzServiceClient4Android.lic"; public static final int PERMISSIONS_CODE = 11; - public static final String[] USER_PERMISSIONS = {Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE}; + public static final String[] USER_PERMISSIONS = {Manifest.permission.READ_EXTERNAL_STORAGE, + Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.READ_PHONE_STATE}; } diff --git a/app/src/main/java/com/casic/smartwellapp/Entity/Data.java b/app/src/main/java/com/casic/smartwellapp/Entity/Data.java index 317acb9..bd79a68 100644 --- a/app/src/main/java/com/casic/smartwellapp/Entity/Data.java +++ b/app/src/main/java/com/casic/smartwellapp/Entity/Data.java @@ -1,8 +1,8 @@ package com.casic.smartwellapp.Entity; public class Data { - String identityCard; - String name; + private String identityCard; + private String name; public String getIdentityCard() { return identityCard; diff --git a/app/build.gradle b/app/build.gradle index 0614b2f..5ec7f4d 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,15 +1,24 @@ apply plugin: 'com.android.application' android { - compileSdkVersion 29 - buildToolsVersion "29.0.3" + compileSdkVersion 30 + buildToolsVersion "30.0.3" defaultConfig { applicationId "com.casic.smartwellapp" - minSdkVersion 17 - targetSdkVersion 29 - versionCode 8 - versionName "v1.1.2" - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + //备案号sdk版本要求最低24 + minSdkVersion 24 + targetSdkVersion 30 + /** + * 使用中版本如下: + * versionCode 8 + * versionName "v1.1.2" + * + * 待测试上架版本: + * versionCode 9 + * versionName "v1.1.3" + * */ + versionCode 9 + versionName "v1.1.3" multiDexEnabled true } buildTypes { @@ -37,32 +46,50 @@ exclude 'META-INF/LGPL2.1' exclude 'META-INF/services/javax.annotation.processing.Processor' exclude 'META-INF/rxjava.properties' - exclude 'org/codehaus/jackson/impl/VERSION.txt' - exclude 'org/codehaus/jackson/map/VERSION.txt' +// exclude 'org/codehaus/jackson/impl/VERSION.txt' +// exclude 'org/codehaus/jackson/map/VERSION.txt' + } + + //导入aar包 + repositories { + flatDir { + dirs 'libs' + } } } dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') - implementation 'androidx.appcompat:appcompat:1.2.0' - implementation 'androidx.constraintlayout:constraintlayout:2.0.4' - implementation 'pub.devrel:easypermissions:1.3.0' - testImplementation 'junit:junit:4.12' - androidTestImplementation 'androidx.test:runner:1.2.0' - androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0' + //移动警务授权sdk implementation files('libs/OauthLoginJar_V1.0.jar') - implementation 'com.lbx:xTools:2.1.2' - implementation 'org.bouncycastle:bcmail-jdk15on:1.59' - implementation 'org.apache.commons:commons-lang3:3.1' - implementation 'com.alibaba:fastjson:1.2.68' - implementation files('libs/guava-17.0.jar') - implementation files('libs/androidsvg-1.2.2-beta-1.jar') + //山海易绘离线地图 implementation files('libs/EzMapServiceApiForAndroid-1.0.3.0.jar') implementation files('libs/EzRouterAPIForAndroid.v1.0.1.201206151022.jar') - implementation files('libs/jts-1.13.jar') - implementation files('libs/kxml2-2.3.0.jar') implementation files('libs/EzLicenseAPI4Android.jar') implementation files('libs/EzMapApiForAndnroid.3.1.0.2.jar') - implementation files('libs/jackson-core-lgpl-1.9.5.jar') - implementation files('libs/jackson-mapper-lgpl-1.9.5.jar') + //移动警务备案号sdk + implementation(name: 'libfriapkrecord-r1.0.1', ext: 'aar') + implementation 'androidx.appcompat:appcompat:1.2.0' + //Google申请手机相关权限官方库 + implementation group: 'pub.devrel', name: 'easypermissions', version: '3.0.0' + //Google官方Json解析 + implementation group: 'com.google.code.gson', name: 'gson', version: '2.8.6' +// implementation group: 'org.bouncycastle', name: 'bcmail-jdk15on', version: '1.68' + //公共帮助类 +// implementation group: 'org.apache.commons', name: 'commons-lang3', version: '3.1' + //阿里巴巴Json解析库 +// implementation group: 'com.alibaba', name: 'fastjson', version: '1.2.76' + //Google提供的一套工具类 +// implementation group: 'com.google.guava', name: 'guava', version: '30.1.1-jre' + //‎安卓SVG渲染库 +// implementation group: 'com.caverock', name: 'androidsvg', version: '1.4' + //JTS拓扑套件是用于建模和操纵二维线性几何形状的API +// implementation group: 'com.vividsolutions', name: 'jts', version: '1.13' + //Json解析 +// implementation group: 'org.codehaus.jackson', name: 'jackson-core-lgpl', version: '1.9.13' + //Jackson数据映射 +// implementation group: 'org.codehaus.jackson', name: 'jackson-mapper-lgpl', version: '1.9.13' + //xml解析 +// implementation group: 'net.sf.kxml', name: 'kxml2', version: '2.3.0' +// implementation 'com.lbx:xTools:2.1.2' } diff --git a/app/libs/androidsvg-1.2.2-beta-1.jar b/app/libs/androidsvg-1.2.2-beta-1.jar deleted file mode 100644 index aa69f00..0000000 --- a/app/libs/androidsvg-1.2.2-beta-1.jar +++ /dev/null Binary files differ diff --git a/app/libs/guava-17.0.jar b/app/libs/guava-17.0.jar deleted file mode 100644 index 661fc74..0000000 --- a/app/libs/guava-17.0.jar +++ /dev/null Binary files differ diff --git a/app/libs/jackson-core-lgpl-1.9.5.jar b/app/libs/jackson-core-lgpl-1.9.5.jar deleted file mode 100644 index 89dc160..0000000 --- a/app/libs/jackson-core-lgpl-1.9.5.jar +++ /dev/null Binary files differ diff --git a/app/libs/jackson-mapper-lgpl-1.9.5.jar b/app/libs/jackson-mapper-lgpl-1.9.5.jar deleted file mode 100644 index 095ffb3..0000000 --- a/app/libs/jackson-mapper-lgpl-1.9.5.jar +++ /dev/null Binary files differ diff --git a/app/libs/jts-1.13.jar b/app/libs/jts-1.13.jar deleted file mode 100644 index bbaa20b..0000000 --- a/app/libs/jts-1.13.jar +++ /dev/null Binary files differ diff --git a/app/libs/kxml2-2.3.0.jar b/app/libs/kxml2-2.3.0.jar deleted file mode 100644 index 6470952..0000000 --- a/app/libs/kxml2-2.3.0.jar +++ /dev/null Binary files differ diff --git a/app/libs/libfriapkrecord-r1.0.1.aar b/app/libs/libfriapkrecord-r1.0.1.aar new file mode 100644 index 0000000..ad69876 --- /dev/null +++ b/app/libs/libfriapkrecord-r1.0.1.aar Binary files differ diff --git a/app/src/androidTest/java/com/casic/smartwellapp/ExampleInstrumentedTest.java b/app/src/androidTest/java/com/casic/smartwellapp/ExampleInstrumentedTest.java deleted file mode 100644 index 3013492..0000000 --- a/app/src/androidTest/java/com/casic/smartwellapp/ExampleInstrumentedTest.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.casic.smartwellapp; - -import android.content.Context; - -import androidx.test.InstrumentationRegistry; -import androidx.test.runner.AndroidJUnit4; - -import org.junit.Test; -import org.junit.runner.RunWith; - -import static org.junit.Assert.*; - -/** - * Instrumented test, which will execute on an Android device. - * - * @see Testing documentation - */ -@RunWith(AndroidJUnit4.class) -public class ExampleInstrumentedTest { - @Test - public void useAppContext() { - // Context of the app under test. - Context appContext = InstrumentationRegistry.getTargetContext(); - - assertEquals("com.casic.smartwellapp", appContext.getPackageName()); - } -} diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 4eeda90..bc63fec 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -3,6 +3,9 @@ xmlns:tools="http://schemas.android.com/tools" package="com.casic.smartwellapp"> + @@ -20,22 +23,23 @@ - - - + + + diff --git a/app/src/main/assets/error.html b/app/src/main/assets/error.html index dcd365f..5abea9c 100644 --- a/app/src/main/assets/error.html +++ b/app/src/main/assets/error.html @@ -1,82 +1,90 @@ - - - - 404 - - - -
- -
-
- -
-
- 请检查网络后重试 -
- - - -
-
- - - + .text-area { + + height: 75px; + } + + .tips { + font-size: 25px; + line-height: 35px; + color: white; + text-align: center; + } + + .tips img { + width: 70%; + } + + .btn { + margin-top: 5%; + text-align: center; + } + + .btn button { + font-size: 30px; + padding: 10px 20px; + border-radius: 20px; + background-color: #ffee00; + color: #ff7700; + margin: 0 auto; + } + + .btn button:hover { + background-color: #ffbb00; + color: #ffff00; + } + + + +
+ +
+
+ +
+
+ 请检查网络后重试 +
+ + + +
+
+ + + diff --git a/app/src/main/assets/hello.html b/app/src/main/assets/hello.html index 5c45033..5fde805 100644 --- a/app/src/main/assets/hello.html +++ b/app/src/main/assets/hello.html @@ -1,64 +1,73 @@ - - - - 404 - - - -
-
- - + .airplane { + width: 50%; + margin: 20% 25% 10% 25%; + text-align: center; + } + + .text-area { + + height: 75px; + } + + .tips { + font-size: 25px; + line-height: 35px; + color: white; + text-align: center; + } + + .tips img { + width: 70%; + } + + .btn { + margin-top: 5%; + text-align: center; + } + + .btn button { + font-size: 30px; + padding: 10px 20px; + border-radius: 20px; + background-color: #ffee00; + color: #ff7700; + margin: 0 auto; + } + + .btn button:hover { + background-color: #ffbb00; + color: #ffff00; + } + + + +
+
+ + diff --git a/app/src/main/assets/index.html b/app/src/main/assets/index.html index d5b666a..1e55e53 100644 --- a/app/src/main/assets/index.html +++ b/app/src/main/assets/index.html @@ -1 +1,18 @@ -智能闸井
\ No newline at end of file + + + + + + + + 智能闸井 + + + +
+ + + + + diff --git a/app/src/main/assets/map.html b/app/src/main/assets/map.html index 6665800..d9f8d04 100644 --- a/app/src/main/assets/map.html +++ b/app/src/main/assets/map.html @@ -1,79 +1,79 @@ - - - - - - easyMap JavaScript API Example: simple + + + + + + easyMap JavaScript API Example: simple - - + + - - - -
- - - + var pIcon = new Icon(); // 构造一个图标类 + pIcon.image = "static/images/location.png"; + pIcon.height = 16; + pIcon.width = 16; + var strMsg = theRequest.pointname; + var marker = new Marker(centerP, pIcon); // 构造一个标记叠加对象 + uEzMap.addOverlay(marker); // 将标记叠加对象添加到地图中 + // 构造鹰眼对象 + var ov = new OverView(); + // 设置鹰眼的宽度,单位为像素px + ov.width = 200; + // 设置鹰眼的高度 + ov.height = 200; + // 添加鹰眼对象到地图对象中 + uEzMap.addOverView(ov); + } + + + diff --git a/app/src/main/java/com/casic/smartwellapp/Entity/Constant.java b/app/src/main/java/com/casic/smartwellapp/Entity/Constant.java index 66d61e1..99c2ff3 100644 --- a/app/src/main/java/com/casic/smartwellapp/Entity/Constant.java +++ b/app/src/main/java/com/casic/smartwellapp/Entity/Constant.java @@ -1,11 +1,9 @@ package com.casic.smartwellapp.Entity; import android.Manifest; -import android.os.Environment; public class Constant { - public static final String LICENSE_PATH = Environment.getExternalStorageDirectory() + "/PGIS/license/EzServiceClient4Android.lic"; - // public static final String LICENSE_PATH = "file:///android_asset/EzServiceClient4Android.lic"; public static final int PERMISSIONS_CODE = 11; - public static final String[] USER_PERMISSIONS = {Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE}; + public static final String[] USER_PERMISSIONS = {Manifest.permission.READ_EXTERNAL_STORAGE, + Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.READ_PHONE_STATE}; } diff --git a/app/src/main/java/com/casic/smartwellapp/Entity/Data.java b/app/src/main/java/com/casic/smartwellapp/Entity/Data.java index 317acb9..bd79a68 100644 --- a/app/src/main/java/com/casic/smartwellapp/Entity/Data.java +++ b/app/src/main/java/com/casic/smartwellapp/Entity/Data.java @@ -1,8 +1,8 @@ package com.casic.smartwellapp.Entity; public class Data { - String identityCard; - String name; + private String identityCard; + private String name; public String getIdentityCard() { return identityCard; diff --git a/app/src/main/java/com/casic/smartwellapp/Entity/DeviceData.java b/app/src/main/java/com/casic/smartwellapp/Entity/DeviceData.java index a17c74a..1f064c4 100644 --- a/app/src/main/java/com/casic/smartwellapp/Entity/DeviceData.java +++ b/app/src/main/java/com/casic/smartwellapp/Entity/DeviceData.java @@ -1,12 +1,12 @@ package com.casic.smartwellapp.Entity; public class DeviceData { - String name; - String card; - String yys; - String imei = ""; + private String name; + private String card; + private String yys; + private String imei; - public DeviceData(String name, String card, String yys,String imei) { + public DeviceData(String name, String card, String yys, String imei) { this.name = name; this.card = card; this.yys = yys; diff --git a/app/build.gradle b/app/build.gradle index 0614b2f..5ec7f4d 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,15 +1,24 @@ apply plugin: 'com.android.application' android { - compileSdkVersion 29 - buildToolsVersion "29.0.3" + compileSdkVersion 30 + buildToolsVersion "30.0.3" defaultConfig { applicationId "com.casic.smartwellapp" - minSdkVersion 17 - targetSdkVersion 29 - versionCode 8 - versionName "v1.1.2" - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + //备案号sdk版本要求最低24 + minSdkVersion 24 + targetSdkVersion 30 + /** + * 使用中版本如下: + * versionCode 8 + * versionName "v1.1.2" + * + * 待测试上架版本: + * versionCode 9 + * versionName "v1.1.3" + * */ + versionCode 9 + versionName "v1.1.3" multiDexEnabled true } buildTypes { @@ -37,32 +46,50 @@ exclude 'META-INF/LGPL2.1' exclude 'META-INF/services/javax.annotation.processing.Processor' exclude 'META-INF/rxjava.properties' - exclude 'org/codehaus/jackson/impl/VERSION.txt' - exclude 'org/codehaus/jackson/map/VERSION.txt' +// exclude 'org/codehaus/jackson/impl/VERSION.txt' +// exclude 'org/codehaus/jackson/map/VERSION.txt' + } + + //导入aar包 + repositories { + flatDir { + dirs 'libs' + } } } dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') - implementation 'androidx.appcompat:appcompat:1.2.0' - implementation 'androidx.constraintlayout:constraintlayout:2.0.4' - implementation 'pub.devrel:easypermissions:1.3.0' - testImplementation 'junit:junit:4.12' - androidTestImplementation 'androidx.test:runner:1.2.0' - androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0' + //移动警务授权sdk implementation files('libs/OauthLoginJar_V1.0.jar') - implementation 'com.lbx:xTools:2.1.2' - implementation 'org.bouncycastle:bcmail-jdk15on:1.59' - implementation 'org.apache.commons:commons-lang3:3.1' - implementation 'com.alibaba:fastjson:1.2.68' - implementation files('libs/guava-17.0.jar') - implementation files('libs/androidsvg-1.2.2-beta-1.jar') + //山海易绘离线地图 implementation files('libs/EzMapServiceApiForAndroid-1.0.3.0.jar') implementation files('libs/EzRouterAPIForAndroid.v1.0.1.201206151022.jar') - implementation files('libs/jts-1.13.jar') - implementation files('libs/kxml2-2.3.0.jar') implementation files('libs/EzLicenseAPI4Android.jar') implementation files('libs/EzMapApiForAndnroid.3.1.0.2.jar') - implementation files('libs/jackson-core-lgpl-1.9.5.jar') - implementation files('libs/jackson-mapper-lgpl-1.9.5.jar') + //移动警务备案号sdk + implementation(name: 'libfriapkrecord-r1.0.1', ext: 'aar') + implementation 'androidx.appcompat:appcompat:1.2.0' + //Google申请手机相关权限官方库 + implementation group: 'pub.devrel', name: 'easypermissions', version: '3.0.0' + //Google官方Json解析 + implementation group: 'com.google.code.gson', name: 'gson', version: '2.8.6' +// implementation group: 'org.bouncycastle', name: 'bcmail-jdk15on', version: '1.68' + //公共帮助类 +// implementation group: 'org.apache.commons', name: 'commons-lang3', version: '3.1' + //阿里巴巴Json解析库 +// implementation group: 'com.alibaba', name: 'fastjson', version: '1.2.76' + //Google提供的一套工具类 +// implementation group: 'com.google.guava', name: 'guava', version: '30.1.1-jre' + //‎安卓SVG渲染库 +// implementation group: 'com.caverock', name: 'androidsvg', version: '1.4' + //JTS拓扑套件是用于建模和操纵二维线性几何形状的API +// implementation group: 'com.vividsolutions', name: 'jts', version: '1.13' + //Json解析 +// implementation group: 'org.codehaus.jackson', name: 'jackson-core-lgpl', version: '1.9.13' + //Jackson数据映射 +// implementation group: 'org.codehaus.jackson', name: 'jackson-mapper-lgpl', version: '1.9.13' + //xml解析 +// implementation group: 'net.sf.kxml', name: 'kxml2', version: '2.3.0' +// implementation 'com.lbx:xTools:2.1.2' } diff --git a/app/libs/androidsvg-1.2.2-beta-1.jar b/app/libs/androidsvg-1.2.2-beta-1.jar deleted file mode 100644 index aa69f00..0000000 --- a/app/libs/androidsvg-1.2.2-beta-1.jar +++ /dev/null Binary files differ diff --git a/app/libs/guava-17.0.jar b/app/libs/guava-17.0.jar deleted file mode 100644 index 661fc74..0000000 --- a/app/libs/guava-17.0.jar +++ /dev/null Binary files differ diff --git a/app/libs/jackson-core-lgpl-1.9.5.jar b/app/libs/jackson-core-lgpl-1.9.5.jar deleted file mode 100644 index 89dc160..0000000 --- a/app/libs/jackson-core-lgpl-1.9.5.jar +++ /dev/null Binary files differ diff --git a/app/libs/jackson-mapper-lgpl-1.9.5.jar b/app/libs/jackson-mapper-lgpl-1.9.5.jar deleted file mode 100644 index 095ffb3..0000000 --- a/app/libs/jackson-mapper-lgpl-1.9.5.jar +++ /dev/null Binary files differ diff --git a/app/libs/jts-1.13.jar b/app/libs/jts-1.13.jar deleted file mode 100644 index bbaa20b..0000000 --- a/app/libs/jts-1.13.jar +++ /dev/null Binary files differ diff --git a/app/libs/kxml2-2.3.0.jar b/app/libs/kxml2-2.3.0.jar deleted file mode 100644 index 6470952..0000000 --- a/app/libs/kxml2-2.3.0.jar +++ /dev/null Binary files differ diff --git a/app/libs/libfriapkrecord-r1.0.1.aar b/app/libs/libfriapkrecord-r1.0.1.aar new file mode 100644 index 0000000..ad69876 --- /dev/null +++ b/app/libs/libfriapkrecord-r1.0.1.aar Binary files differ diff --git a/app/src/androidTest/java/com/casic/smartwellapp/ExampleInstrumentedTest.java b/app/src/androidTest/java/com/casic/smartwellapp/ExampleInstrumentedTest.java deleted file mode 100644 index 3013492..0000000 --- a/app/src/androidTest/java/com/casic/smartwellapp/ExampleInstrumentedTest.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.casic.smartwellapp; - -import android.content.Context; - -import androidx.test.InstrumentationRegistry; -import androidx.test.runner.AndroidJUnit4; - -import org.junit.Test; -import org.junit.runner.RunWith; - -import static org.junit.Assert.*; - -/** - * Instrumented test, which will execute on an Android device. - * - * @see Testing documentation - */ -@RunWith(AndroidJUnit4.class) -public class ExampleInstrumentedTest { - @Test - public void useAppContext() { - // Context of the app under test. - Context appContext = InstrumentationRegistry.getTargetContext(); - - assertEquals("com.casic.smartwellapp", appContext.getPackageName()); - } -} diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 4eeda90..bc63fec 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -3,6 +3,9 @@ xmlns:tools="http://schemas.android.com/tools" package="com.casic.smartwellapp"> + @@ -20,22 +23,23 @@ - - - + + + diff --git a/app/src/main/assets/error.html b/app/src/main/assets/error.html index dcd365f..5abea9c 100644 --- a/app/src/main/assets/error.html +++ b/app/src/main/assets/error.html @@ -1,82 +1,90 @@ - - - - 404 - - - -
- -
-
- -
-
- 请检查网络后重试 -
- - - -
-
- - - + .text-area { + + height: 75px; + } + + .tips { + font-size: 25px; + line-height: 35px; + color: white; + text-align: center; + } + + .tips img { + width: 70%; + } + + .btn { + margin-top: 5%; + text-align: center; + } + + .btn button { + font-size: 30px; + padding: 10px 20px; + border-radius: 20px; + background-color: #ffee00; + color: #ff7700; + margin: 0 auto; + } + + .btn button:hover { + background-color: #ffbb00; + color: #ffff00; + } + + + +
+ +
+
+ +
+
+ 请检查网络后重试 +
+ + + +
+
+ + + diff --git a/app/src/main/assets/hello.html b/app/src/main/assets/hello.html index 5c45033..5fde805 100644 --- a/app/src/main/assets/hello.html +++ b/app/src/main/assets/hello.html @@ -1,64 +1,73 @@ - - - - 404 - - - -
-
- - + .airplane { + width: 50%; + margin: 20% 25% 10% 25%; + text-align: center; + } + + .text-area { + + height: 75px; + } + + .tips { + font-size: 25px; + line-height: 35px; + color: white; + text-align: center; + } + + .tips img { + width: 70%; + } + + .btn { + margin-top: 5%; + text-align: center; + } + + .btn button { + font-size: 30px; + padding: 10px 20px; + border-radius: 20px; + background-color: #ffee00; + color: #ff7700; + margin: 0 auto; + } + + .btn button:hover { + background-color: #ffbb00; + color: #ffff00; + } + + + +
+
+ + diff --git a/app/src/main/assets/index.html b/app/src/main/assets/index.html index d5b666a..1e55e53 100644 --- a/app/src/main/assets/index.html +++ b/app/src/main/assets/index.html @@ -1 +1,18 @@ -智能闸井
\ No newline at end of file + + + + + + + + 智能闸井 + + + +
+ + + + + diff --git a/app/src/main/assets/map.html b/app/src/main/assets/map.html index 6665800..d9f8d04 100644 --- a/app/src/main/assets/map.html +++ b/app/src/main/assets/map.html @@ -1,79 +1,79 @@ - - - - - - easyMap JavaScript API Example: simple + + + + + + easyMap JavaScript API Example: simple - - + + - - - -
- - - + var pIcon = new Icon(); // 构造一个图标类 + pIcon.image = "static/images/location.png"; + pIcon.height = 16; + pIcon.width = 16; + var strMsg = theRequest.pointname; + var marker = new Marker(centerP, pIcon); // 构造一个标记叠加对象 + uEzMap.addOverlay(marker); // 将标记叠加对象添加到地图中 + // 构造鹰眼对象 + var ov = new OverView(); + // 设置鹰眼的宽度,单位为像素px + ov.width = 200; + // 设置鹰眼的高度 + ov.height = 200; + // 添加鹰眼对象到地图对象中 + uEzMap.addOverView(ov); + } + + + diff --git a/app/src/main/java/com/casic/smartwellapp/Entity/Constant.java b/app/src/main/java/com/casic/smartwellapp/Entity/Constant.java index 66d61e1..99c2ff3 100644 --- a/app/src/main/java/com/casic/smartwellapp/Entity/Constant.java +++ b/app/src/main/java/com/casic/smartwellapp/Entity/Constant.java @@ -1,11 +1,9 @@ package com.casic.smartwellapp.Entity; import android.Manifest; -import android.os.Environment; public class Constant { - public static final String LICENSE_PATH = Environment.getExternalStorageDirectory() + "/PGIS/license/EzServiceClient4Android.lic"; - // public static final String LICENSE_PATH = "file:///android_asset/EzServiceClient4Android.lic"; public static final int PERMISSIONS_CODE = 11; - public static final String[] USER_PERMISSIONS = {Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE}; + public static final String[] USER_PERMISSIONS = {Manifest.permission.READ_EXTERNAL_STORAGE, + Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.READ_PHONE_STATE}; } diff --git a/app/src/main/java/com/casic/smartwellapp/Entity/Data.java b/app/src/main/java/com/casic/smartwellapp/Entity/Data.java index 317acb9..bd79a68 100644 --- a/app/src/main/java/com/casic/smartwellapp/Entity/Data.java +++ b/app/src/main/java/com/casic/smartwellapp/Entity/Data.java @@ -1,8 +1,8 @@ package com.casic.smartwellapp.Entity; public class Data { - String identityCard; - String name; + private String identityCard; + private String name; public String getIdentityCard() { return identityCard; diff --git a/app/src/main/java/com/casic/smartwellapp/Entity/DeviceData.java b/app/src/main/java/com/casic/smartwellapp/Entity/DeviceData.java index a17c74a..1f064c4 100644 --- a/app/src/main/java/com/casic/smartwellapp/Entity/DeviceData.java +++ b/app/src/main/java/com/casic/smartwellapp/Entity/DeviceData.java @@ -1,12 +1,12 @@ package com.casic.smartwellapp.Entity; public class DeviceData { - String name; - String card; - String yys; - String imei = ""; + private String name; + private String card; + private String yys; + private String imei; - public DeviceData(String name, String card, String yys,String imei) { + public DeviceData(String name, String card, String yys, String imei) { this.name = name; this.card = card; this.yys = yys; diff --git a/app/src/main/java/com/casic/smartwellapp/Entity/LoginReturn.java b/app/src/main/java/com/casic/smartwellapp/Entity/LoginReturn.java index 7ed1948..4f3d7c9 100644 --- a/app/src/main/java/com/casic/smartwellapp/Entity/LoginReturn.java +++ b/app/src/main/java/com/casic/smartwellapp/Entity/LoginReturn.java @@ -2,9 +2,9 @@ public class LoginReturn { - String code; - String msg; - Data data; + private String code; + private String msg; + private Data data; public String getCode() { return code; diff --git a/app/build.gradle b/app/build.gradle index 0614b2f..5ec7f4d 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,15 +1,24 @@ apply plugin: 'com.android.application' android { - compileSdkVersion 29 - buildToolsVersion "29.0.3" + compileSdkVersion 30 + buildToolsVersion "30.0.3" defaultConfig { applicationId "com.casic.smartwellapp" - minSdkVersion 17 - targetSdkVersion 29 - versionCode 8 - versionName "v1.1.2" - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + //备案号sdk版本要求最低24 + minSdkVersion 24 + targetSdkVersion 30 + /** + * 使用中版本如下: + * versionCode 8 + * versionName "v1.1.2" + * + * 待测试上架版本: + * versionCode 9 + * versionName "v1.1.3" + * */ + versionCode 9 + versionName "v1.1.3" multiDexEnabled true } buildTypes { @@ -37,32 +46,50 @@ exclude 'META-INF/LGPL2.1' exclude 'META-INF/services/javax.annotation.processing.Processor' exclude 'META-INF/rxjava.properties' - exclude 'org/codehaus/jackson/impl/VERSION.txt' - exclude 'org/codehaus/jackson/map/VERSION.txt' +// exclude 'org/codehaus/jackson/impl/VERSION.txt' +// exclude 'org/codehaus/jackson/map/VERSION.txt' + } + + //导入aar包 + repositories { + flatDir { + dirs 'libs' + } } } dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') - implementation 'androidx.appcompat:appcompat:1.2.0' - implementation 'androidx.constraintlayout:constraintlayout:2.0.4' - implementation 'pub.devrel:easypermissions:1.3.0' - testImplementation 'junit:junit:4.12' - androidTestImplementation 'androidx.test:runner:1.2.0' - androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0' + //移动警务授权sdk implementation files('libs/OauthLoginJar_V1.0.jar') - implementation 'com.lbx:xTools:2.1.2' - implementation 'org.bouncycastle:bcmail-jdk15on:1.59' - implementation 'org.apache.commons:commons-lang3:3.1' - implementation 'com.alibaba:fastjson:1.2.68' - implementation files('libs/guava-17.0.jar') - implementation files('libs/androidsvg-1.2.2-beta-1.jar') + //山海易绘离线地图 implementation files('libs/EzMapServiceApiForAndroid-1.0.3.0.jar') implementation files('libs/EzRouterAPIForAndroid.v1.0.1.201206151022.jar') - implementation files('libs/jts-1.13.jar') - implementation files('libs/kxml2-2.3.0.jar') implementation files('libs/EzLicenseAPI4Android.jar') implementation files('libs/EzMapApiForAndnroid.3.1.0.2.jar') - implementation files('libs/jackson-core-lgpl-1.9.5.jar') - implementation files('libs/jackson-mapper-lgpl-1.9.5.jar') + //移动警务备案号sdk + implementation(name: 'libfriapkrecord-r1.0.1', ext: 'aar') + implementation 'androidx.appcompat:appcompat:1.2.0' + //Google申请手机相关权限官方库 + implementation group: 'pub.devrel', name: 'easypermissions', version: '3.0.0' + //Google官方Json解析 + implementation group: 'com.google.code.gson', name: 'gson', version: '2.8.6' +// implementation group: 'org.bouncycastle', name: 'bcmail-jdk15on', version: '1.68' + //公共帮助类 +// implementation group: 'org.apache.commons', name: 'commons-lang3', version: '3.1' + //阿里巴巴Json解析库 +// implementation group: 'com.alibaba', name: 'fastjson', version: '1.2.76' + //Google提供的一套工具类 +// implementation group: 'com.google.guava', name: 'guava', version: '30.1.1-jre' + //‎安卓SVG渲染库 +// implementation group: 'com.caverock', name: 'androidsvg', version: '1.4' + //JTS拓扑套件是用于建模和操纵二维线性几何形状的API +// implementation group: 'com.vividsolutions', name: 'jts', version: '1.13' + //Json解析 +// implementation group: 'org.codehaus.jackson', name: 'jackson-core-lgpl', version: '1.9.13' + //Jackson数据映射 +// implementation group: 'org.codehaus.jackson', name: 'jackson-mapper-lgpl', version: '1.9.13' + //xml解析 +// implementation group: 'net.sf.kxml', name: 'kxml2', version: '2.3.0' +// implementation 'com.lbx:xTools:2.1.2' } diff --git a/app/libs/androidsvg-1.2.2-beta-1.jar b/app/libs/androidsvg-1.2.2-beta-1.jar deleted file mode 100644 index aa69f00..0000000 --- a/app/libs/androidsvg-1.2.2-beta-1.jar +++ /dev/null Binary files differ diff --git a/app/libs/guava-17.0.jar b/app/libs/guava-17.0.jar deleted file mode 100644 index 661fc74..0000000 --- a/app/libs/guava-17.0.jar +++ /dev/null Binary files differ diff --git a/app/libs/jackson-core-lgpl-1.9.5.jar b/app/libs/jackson-core-lgpl-1.9.5.jar deleted file mode 100644 index 89dc160..0000000 --- a/app/libs/jackson-core-lgpl-1.9.5.jar +++ /dev/null Binary files differ diff --git a/app/libs/jackson-mapper-lgpl-1.9.5.jar b/app/libs/jackson-mapper-lgpl-1.9.5.jar deleted file mode 100644 index 095ffb3..0000000 --- a/app/libs/jackson-mapper-lgpl-1.9.5.jar +++ /dev/null Binary files differ diff --git a/app/libs/jts-1.13.jar b/app/libs/jts-1.13.jar deleted file mode 100644 index bbaa20b..0000000 --- a/app/libs/jts-1.13.jar +++ /dev/null Binary files differ diff --git a/app/libs/kxml2-2.3.0.jar b/app/libs/kxml2-2.3.0.jar deleted file mode 100644 index 6470952..0000000 --- a/app/libs/kxml2-2.3.0.jar +++ /dev/null Binary files differ diff --git a/app/libs/libfriapkrecord-r1.0.1.aar b/app/libs/libfriapkrecord-r1.0.1.aar new file mode 100644 index 0000000..ad69876 --- /dev/null +++ b/app/libs/libfriapkrecord-r1.0.1.aar Binary files differ diff --git a/app/src/androidTest/java/com/casic/smartwellapp/ExampleInstrumentedTest.java b/app/src/androidTest/java/com/casic/smartwellapp/ExampleInstrumentedTest.java deleted file mode 100644 index 3013492..0000000 --- a/app/src/androidTest/java/com/casic/smartwellapp/ExampleInstrumentedTest.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.casic.smartwellapp; - -import android.content.Context; - -import androidx.test.InstrumentationRegistry; -import androidx.test.runner.AndroidJUnit4; - -import org.junit.Test; -import org.junit.runner.RunWith; - -import static org.junit.Assert.*; - -/** - * Instrumented test, which will execute on an Android device. - * - * @see Testing documentation - */ -@RunWith(AndroidJUnit4.class) -public class ExampleInstrumentedTest { - @Test - public void useAppContext() { - // Context of the app under test. - Context appContext = InstrumentationRegistry.getTargetContext(); - - assertEquals("com.casic.smartwellapp", appContext.getPackageName()); - } -} diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 4eeda90..bc63fec 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -3,6 +3,9 @@ xmlns:tools="http://schemas.android.com/tools" package="com.casic.smartwellapp"> + @@ -20,22 +23,23 @@ - - - + + + diff --git a/app/src/main/assets/error.html b/app/src/main/assets/error.html index dcd365f..5abea9c 100644 --- a/app/src/main/assets/error.html +++ b/app/src/main/assets/error.html @@ -1,82 +1,90 @@ - - - - 404 - - - -
- -
-
- -
-
- 请检查网络后重试 -
- - - -
-
- - - + .text-area { + + height: 75px; + } + + .tips { + font-size: 25px; + line-height: 35px; + color: white; + text-align: center; + } + + .tips img { + width: 70%; + } + + .btn { + margin-top: 5%; + text-align: center; + } + + .btn button { + font-size: 30px; + padding: 10px 20px; + border-radius: 20px; + background-color: #ffee00; + color: #ff7700; + margin: 0 auto; + } + + .btn button:hover { + background-color: #ffbb00; + color: #ffff00; + } + + + +
+ +
+
+ +
+
+ 请检查网络后重试 +
+ + + +
+
+ + + diff --git a/app/src/main/assets/hello.html b/app/src/main/assets/hello.html index 5c45033..5fde805 100644 --- a/app/src/main/assets/hello.html +++ b/app/src/main/assets/hello.html @@ -1,64 +1,73 @@ - - - - 404 - - - -
-
- - + .airplane { + width: 50%; + margin: 20% 25% 10% 25%; + text-align: center; + } + + .text-area { + + height: 75px; + } + + .tips { + font-size: 25px; + line-height: 35px; + color: white; + text-align: center; + } + + .tips img { + width: 70%; + } + + .btn { + margin-top: 5%; + text-align: center; + } + + .btn button { + font-size: 30px; + padding: 10px 20px; + border-radius: 20px; + background-color: #ffee00; + color: #ff7700; + margin: 0 auto; + } + + .btn button:hover { + background-color: #ffbb00; + color: #ffff00; + } + + + +
+
+ + diff --git a/app/src/main/assets/index.html b/app/src/main/assets/index.html index d5b666a..1e55e53 100644 --- a/app/src/main/assets/index.html +++ b/app/src/main/assets/index.html @@ -1 +1,18 @@ -智能闸井
\ No newline at end of file + + + + + + + + 智能闸井 + + + +
+ + + + + diff --git a/app/src/main/assets/map.html b/app/src/main/assets/map.html index 6665800..d9f8d04 100644 --- a/app/src/main/assets/map.html +++ b/app/src/main/assets/map.html @@ -1,79 +1,79 @@ - - - - - - easyMap JavaScript API Example: simple + + + + + + easyMap JavaScript API Example: simple - - + + - - - -
- - - + var pIcon = new Icon(); // 构造一个图标类 + pIcon.image = "static/images/location.png"; + pIcon.height = 16; + pIcon.width = 16; + var strMsg = theRequest.pointname; + var marker = new Marker(centerP, pIcon); // 构造一个标记叠加对象 + uEzMap.addOverlay(marker); // 将标记叠加对象添加到地图中 + // 构造鹰眼对象 + var ov = new OverView(); + // 设置鹰眼的宽度,单位为像素px + ov.width = 200; + // 设置鹰眼的高度 + ov.height = 200; + // 添加鹰眼对象到地图对象中 + uEzMap.addOverView(ov); + } + + + diff --git a/app/src/main/java/com/casic/smartwellapp/Entity/Constant.java b/app/src/main/java/com/casic/smartwellapp/Entity/Constant.java index 66d61e1..99c2ff3 100644 --- a/app/src/main/java/com/casic/smartwellapp/Entity/Constant.java +++ b/app/src/main/java/com/casic/smartwellapp/Entity/Constant.java @@ -1,11 +1,9 @@ package com.casic.smartwellapp.Entity; import android.Manifest; -import android.os.Environment; public class Constant { - public static final String LICENSE_PATH = Environment.getExternalStorageDirectory() + "/PGIS/license/EzServiceClient4Android.lic"; - // public static final String LICENSE_PATH = "file:///android_asset/EzServiceClient4Android.lic"; public static final int PERMISSIONS_CODE = 11; - public static final String[] USER_PERMISSIONS = {Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE}; + public static final String[] USER_PERMISSIONS = {Manifest.permission.READ_EXTERNAL_STORAGE, + Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.READ_PHONE_STATE}; } diff --git a/app/src/main/java/com/casic/smartwellapp/Entity/Data.java b/app/src/main/java/com/casic/smartwellapp/Entity/Data.java index 317acb9..bd79a68 100644 --- a/app/src/main/java/com/casic/smartwellapp/Entity/Data.java +++ b/app/src/main/java/com/casic/smartwellapp/Entity/Data.java @@ -1,8 +1,8 @@ package com.casic.smartwellapp.Entity; public class Data { - String identityCard; - String name; + private String identityCard; + private String name; public String getIdentityCard() { return identityCard; diff --git a/app/src/main/java/com/casic/smartwellapp/Entity/DeviceData.java b/app/src/main/java/com/casic/smartwellapp/Entity/DeviceData.java index a17c74a..1f064c4 100644 --- a/app/src/main/java/com/casic/smartwellapp/Entity/DeviceData.java +++ b/app/src/main/java/com/casic/smartwellapp/Entity/DeviceData.java @@ -1,12 +1,12 @@ package com.casic.smartwellapp.Entity; public class DeviceData { - String name; - String card; - String yys; - String imei = ""; + private String name; + private String card; + private String yys; + private String imei; - public DeviceData(String name, String card, String yys,String imei) { + public DeviceData(String name, String card, String yys, String imei) { this.name = name; this.card = card; this.yys = yys; diff --git a/app/src/main/java/com/casic/smartwellapp/Entity/LoginReturn.java b/app/src/main/java/com/casic/smartwellapp/Entity/LoginReturn.java index 7ed1948..4f3d7c9 100644 --- a/app/src/main/java/com/casic/smartwellapp/Entity/LoginReturn.java +++ b/app/src/main/java/com/casic/smartwellapp/Entity/LoginReturn.java @@ -2,9 +2,9 @@ public class LoginReturn { - String code; - String msg; - Data data; + private String code; + private String msg; + private Data data; public String getCode() { return code; diff --git a/app/src/main/java/com/casic/smartwellapp/MainActivity.java b/app/src/main/java/com/casic/smartwellapp/MainActivity.java index b88eb70..98a6315 100644 --- a/app/src/main/java/com/casic/smartwellapp/MainActivity.java +++ b/app/src/main/java/com/casic/smartwellapp/MainActivity.java @@ -2,9 +2,9 @@ import android.Manifest; import android.annotation.SuppressLint; -import android.app.Activity; import android.content.Context; import android.content.Intent; +import android.content.pm.ApplicationInfo; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.net.Uri; @@ -23,12 +23,14 @@ import android.webkit.WebViewClient; import android.widget.Toast; -import androidx.annotation.RequiresApi; -import androidx.appcompat.app.AppCompatActivity; +import androidx.annotation.Nullable; import androidx.core.app.ActivityCompat; import com.casic.smartwellapp.Entity.DeviceData; import com.casic.smartwellapp.Entity.LoginReturn; +import com.casic.smartwellapp.base.BaseActivity; +import com.casic.smartwellapp.uitil.SaveKeyValues; +import com.fri.libfriapkrecord.read.SignRecordTools; import com.google.gson.Gson; import com.telecomyt.oauthlogin.bean.JiAnBaoCheckResult; import com.telecomyt.oauthlogin.http.HttpCallback; @@ -37,10 +39,13 @@ import java.lang.reflect.Method; import java.util.List; -import static com.telecomyt.oauthlogin.config.Config.LOG_TAG; +public class MainActivity extends BaseActivity { -public class MainActivity extends AppCompatActivity { + private static final String TAG = "MainActivity"; + private static final String oauth_url = "http://menhu.telecomyt.com.cn:8080/"; //单点登录验证地址 + private static final int LOGIN_CODE = 1001; + private static final int REQUEST_READ_PHONE_STATE = 1; private WebView webview; private String token;// token @@ -49,49 +54,28 @@ private String yys; //运营商 private LoginReturn userInfoResult = null; //单点登录返回的用户信息 private DeviceData deviceData = null; //给用户返回的数据 - - private static final String oauth_url = "http://menhu.telecomyt.com.cn:8080/"; //单点登录验证地址 - private long exitTime = 0; //点击退出时间 - - private static final int LOGIN_CODE = 1001; - public static final int REQUEST_READ_PHONE_STATE = 1; - private String msgId; //推送消息id private String msgContent; //推送消息内容 - @RequiresApi(api = Build.VERSION_CODES.KITKAT) @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setContentView(R.layout.activity_main); - try { - Intent intent = new Intent("com.telecomyt.portal.OAUTH"); - intent.putExtra("appID", "3pb316_oauth"); - intent.putExtra("version", "v1"); - startActivityForResult(intent, 1001);//REQUEST_CODE:为自己定义的回调的代码标记。 - } catch (Exception e) { - Toast.makeText(MainActivity.this, "请先安装警务门户", Toast.LENGTH_SHORT).show(); - Log.e(LOG_TAG, "请先安装警务门户"); - } + public int initLayoutView() { + return R.layout.activity_main; + } -// imei = getIMEI(getApplicationContext()); -// imei = getDeviceId(MainActivity.this); + @Override + public void initDataWithState(@Nullable Bundle savedInstanceState) { + + } + + @Override + public void initData() { imei = obtainSimCardSerialNumber();//20210524 Pengxh修改 - -// if (getIntent() != null) { -//// Intent intent = getIntent(); -//// msgId = intent.getStringExtra("id"); -//// msgContent = intent.getStringExtra("content"); -//// Toast.makeText(MainActivity.this,msgContent,Toast.LENGTH_SHORT).show(); -//// Log.e("push",msgContent); -//// } - - //webview + Log.d(TAG, "imei === " + imei); + obtainRecordNumber();//20210813 Pengxh修改 // 获取控件对象 - webview = findViewById(R.id.WV_ID); + webview = findViewById(R.id.webView); WebView.setWebContentsDebuggingEnabled(true); - WebSettings settings = webview.getSettings(); settings.setJavaScriptEnabled(true);//设置webView属性,允许运行js脚本 settings.setDomStorageEnabled(true); @@ -101,7 +85,19 @@ settings.setAllowFileAccess(true);//可访问文件 settings.setDefaultTextEncodingName("UTF-8"); settings.setAllowUniversalAccessFromFileURLs(true); + } + @Override + public void initEvent() { + try { + Intent intent = new Intent("com.telecomyt.portal.OAUTH"); + intent.putExtra("appID", "3pb316_oauth"); + intent.putExtra("version", "v1"); + startActivityForResult(intent, 1001);//REQUEST_CODE:为自己定义的回调的代码标记。 + } catch (Exception e) { + Toast.makeText(MainActivity.this, "请先安装警务门户", Toast.LENGTH_SHORT).show(); + Log.d(TAG, "onCreate-->请先安装警务门户"); + } // 设置在当前WebView继续加载网页 webview.setWebViewClient(new WebViewClient() { @Override @@ -110,13 +106,13 @@ // 处理自定义scheme协议 if (!url.startsWith("http")) { //处理自定义scheme-->androidamap://viewMap?poiname=W00002&lat=39.9055035111111&lng=116.376759027778 - Log.e("scheme", "处理自定义scheme-->" + url); + Log.d(TAG, "处理自定义scheme-->" + url); // 如果要跳转地图 if (url.startsWith("androidamap:")) { String lat = "", lng = "", pointname = ""; //获取问号后的参数 String params = url.substring(url.indexOf('?')); - Log.i("map", params); + Log.d(TAG, "问号后的参数 === " + params); if (url.contains("?")) { String str = params.substring(1); String[] strs = str.split("&"); @@ -161,10 +157,8 @@ } public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) { - //handler.cancel(); 默认的处理方式,WebView变成空白页 //接受证书 handler.proceed(); - //handleMessage(Message msg); 其他处理 } @Override @@ -176,7 +170,6 @@ }); // 给web提供调用接口 webview.addJavascriptInterface(new WebAppInterface(), "android"); - // 加载html文件,欢迎页面 webview.loadUrl("file:///android_asset/hello.html"); } @@ -201,12 +194,12 @@ if (requestCode == 1001) { if (data != null) { String result = data.getStringExtra("result"); - Log.e(LOG_TAG, "吉安宝验证结果 result === " + result); + Log.d(TAG, "吉安宝验证结果 result === " + result); JiAnBaoCheckResult tokenResult = new Gson().fromJson(result, JiAnBaoCheckResult.class); if (tokenResult != null) { if (tokenResult.isResult()) { token = tokenResult.getSubjectDN(); - Log.e(LOG_TAG, "token === " + token); + Log.d(TAG, "token === " + token); // webview.loadUrl("file:///android_asset/index.html?token="+token); if (!TextUtils.isEmpty(token)) { HttpOauthCheckUtil.getInstance().getUserInfo(oauth_url, token, new HttpCallback() { @@ -214,19 +207,19 @@ public void onSuccess(String result) { Toast.makeText(getApplicationContext(), "认证通过,欢迎使用", Toast.LENGTH_SHORT).show(); - Log.e(LOG_TAG, "门户验证结果 === " + result); + Log.d(TAG, "门户验证结果 === " + result); userInfoResult = new Gson().fromJson(result, LoginReturn.class); yys = getYys(getApplicationContext()); String name = userInfoResult.getData().getName(); String identifyCard = userInfoResult.getData().getIdentityCard(); deviceData = new DeviceData(name, identifyCard, yys, imei); - Log.i("deviceData", deviceData.toString()); + Log.d(TAG, "deviceData === " + deviceData.toString()); webview.loadUrl("file:///android_asset/index.html"); } @Override public void onFailed(String err) { - Log.e(LOG_TAG, "错误信息 === " + err); + Log.d(TAG, "错误信息 === " + err); Toast.makeText(getApplicationContext(), err, Toast.LENGTH_SHORT).show(); } @@ -236,38 +229,24 @@ //吉安宝认证失败 Toast.makeText(getApplicationContext(), "吉安宝认证失败", Toast.LENGTH_SHORT).show(); - Log.e(LOG_TAG, "吉安宝认证失败 "); + Log.d(TAG, "吉安宝认证失败 "); } } else { Toast.makeText(getApplicationContext(), "请检查网络", Toast.LENGTH_SHORT).show(); - Log.e(LOG_TAG, "请检查网络"); + Log.d(TAG, "请检查网络"); } } } } -// if (requestCode == LOGIN_CODE && resultCode == 100) { // resultCode 固定为100 -// String result = intent.getStringExtra("result"); -// //result为json格式字符串,其中 result: true 为认证成功,false为失败;code: 错误代码 -// // TODO:解析result -// LoginReturn loginReturn = JSON.parseObject(result, LoginReturn.class); -// if(loginReturn.isResult()){//如果result是true -// this.token = loginReturn.getSubjectDN();//token -// }else{ -// -// } -// Log.i("ActivityResult", "onActivityResult: " + result); -// } -// super.onActivityResult(requestCode, resultCode, intent); } - //我们需要重写回退按钮的时间,当用户点击回退按钮: //1.webView.canGoBack()判断网页是否能后退,可以则goback() //2.如果不可以连续点击两次退出App,否则弹出提示Toast @Override public void onBackPressed() { - Log.i("webUrl", "webviewUrl" + webview.getUrl()); + Log.d(TAG, "onBackPressed === " + webview.getUrl()); if (webview.canGoBack() && !webview.getUrl().endsWith("/#/") && !webview.getUrl().endsWith("/#/login")) { webview.goBack(); } else { @@ -285,7 +264,7 @@ public String getUser() { if (deviceData != null) { String json = new Gson().toJson(deviceData); - Log.i("JSON:", json); + Log.d(TAG, "json === " + json); return json; } else { return ""; @@ -302,6 +281,12 @@ return null; } } + + //提供JS调用Android接口方法 + @JavascriptInterface + public String readRecordNumber() { + return (String) SaveKeyValues.getValue("RecordNumber", ""); + } } //获取运营商 @@ -322,38 +307,10 @@ default: } } - Log.i("yys", "yys:" + yys); -// Toast.makeText(context, "运营商:"+yys, Toast.LENGTH_SHORT).show(); + Log.d(TAG, "运营商 === " + yys); return yys; } - public String getIMEI(Context context) { - TelephonyManager telephonyManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); - @SuppressLint("MissingPermission") String imei = telephonyManager.getDeviceId(); - Log.i("imei", "yys:" + imei); - Toast.makeText(context, "imei:" + imei, Toast.LENGTH_SHORT).show(); - return imei; - } - - @SuppressLint("HardwareIds") - public static String getDeviceId(Context context) { - String deviceId = ""; - TelephonyManager tm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE); - if (null != tm) { - if (ActivityCompat.checkSelfPermission(context, Manifest.permission.READ_PHONE_STATE) != PackageManager.PERMISSION_GRANTED) { - ActivityCompat.requestPermissions((Activity) context, new String[]{Manifest.permission.READ_PHONE_STATE}, REQUEST_READ_PHONE_STATE); - } else { - if (tm.getDeviceId() != null) { - deviceId = tm.getDeviceId(); - } else { - deviceId = Settings.Secure.getString(context.getApplicationContext().getContentResolver(), Settings.Secure.ANDROID_ID); - } - } - Log.d("deviceId--->", "deviceId:" + deviceId); - } - return deviceId; - } - //获取SimSerialNumber @SuppressLint({"HardwareIds"}) public String obtainSimCardSerialNumber() { @@ -367,6 +324,7 @@ telephonyClass = Class.forName(telephony.getClass().getName()); if (ActivityCompat.checkSelfPermission(this, Manifest.permission.READ_PHONE_STATE) != PackageManager.PERMISSION_GRANTED) { ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.READ_PHONE_STATE}, REQUEST_READ_PHONE_STATE); + return ""; } //Android 10以下默认获取deviceId,部分手机获取不到deviceId不到的改为获取sim卡串码,如果依旧获取不到,返回"" String imei = telephony.getDeviceId(); @@ -386,5 +344,16 @@ } return ""; } + + //根据移动警务要求,增加备案号获取sdk + private void obtainRecordNumber() { + ApplicationInfo appInfo = getApplicationInfo(); + if (appInfo == null) { + return; + } + String number = SignRecordTools.readNumbers(appInfo.sourceDir); + Log.d(TAG, "全国注册备案号: " + number); + SaveKeyValues.putValue("RecordNumber", number); + } } diff --git a/app/build.gradle b/app/build.gradle index 0614b2f..5ec7f4d 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,15 +1,24 @@ apply plugin: 'com.android.application' android { - compileSdkVersion 29 - buildToolsVersion "29.0.3" + compileSdkVersion 30 + buildToolsVersion "30.0.3" defaultConfig { applicationId "com.casic.smartwellapp" - minSdkVersion 17 - targetSdkVersion 29 - versionCode 8 - versionName "v1.1.2" - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + //备案号sdk版本要求最低24 + minSdkVersion 24 + targetSdkVersion 30 + /** + * 使用中版本如下: + * versionCode 8 + * versionName "v1.1.2" + * + * 待测试上架版本: + * versionCode 9 + * versionName "v1.1.3" + * */ + versionCode 9 + versionName "v1.1.3" multiDexEnabled true } buildTypes { @@ -37,32 +46,50 @@ exclude 'META-INF/LGPL2.1' exclude 'META-INF/services/javax.annotation.processing.Processor' exclude 'META-INF/rxjava.properties' - exclude 'org/codehaus/jackson/impl/VERSION.txt' - exclude 'org/codehaus/jackson/map/VERSION.txt' +// exclude 'org/codehaus/jackson/impl/VERSION.txt' +// exclude 'org/codehaus/jackson/map/VERSION.txt' + } + + //导入aar包 + repositories { + flatDir { + dirs 'libs' + } } } dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') - implementation 'androidx.appcompat:appcompat:1.2.0' - implementation 'androidx.constraintlayout:constraintlayout:2.0.4' - implementation 'pub.devrel:easypermissions:1.3.0' - testImplementation 'junit:junit:4.12' - androidTestImplementation 'androidx.test:runner:1.2.0' - androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0' + //移动警务授权sdk implementation files('libs/OauthLoginJar_V1.0.jar') - implementation 'com.lbx:xTools:2.1.2' - implementation 'org.bouncycastle:bcmail-jdk15on:1.59' - implementation 'org.apache.commons:commons-lang3:3.1' - implementation 'com.alibaba:fastjson:1.2.68' - implementation files('libs/guava-17.0.jar') - implementation files('libs/androidsvg-1.2.2-beta-1.jar') + //山海易绘离线地图 implementation files('libs/EzMapServiceApiForAndroid-1.0.3.0.jar') implementation files('libs/EzRouterAPIForAndroid.v1.0.1.201206151022.jar') - implementation files('libs/jts-1.13.jar') - implementation files('libs/kxml2-2.3.0.jar') implementation files('libs/EzLicenseAPI4Android.jar') implementation files('libs/EzMapApiForAndnroid.3.1.0.2.jar') - implementation files('libs/jackson-core-lgpl-1.9.5.jar') - implementation files('libs/jackson-mapper-lgpl-1.9.5.jar') + //移动警务备案号sdk + implementation(name: 'libfriapkrecord-r1.0.1', ext: 'aar') + implementation 'androidx.appcompat:appcompat:1.2.0' + //Google申请手机相关权限官方库 + implementation group: 'pub.devrel', name: 'easypermissions', version: '3.0.0' + //Google官方Json解析 + implementation group: 'com.google.code.gson', name: 'gson', version: '2.8.6' +// implementation group: 'org.bouncycastle', name: 'bcmail-jdk15on', version: '1.68' + //公共帮助类 +// implementation group: 'org.apache.commons', name: 'commons-lang3', version: '3.1' + //阿里巴巴Json解析库 +// implementation group: 'com.alibaba', name: 'fastjson', version: '1.2.76' + //Google提供的一套工具类 +// implementation group: 'com.google.guava', name: 'guava', version: '30.1.1-jre' + //‎安卓SVG渲染库 +// implementation group: 'com.caverock', name: 'androidsvg', version: '1.4' + //JTS拓扑套件是用于建模和操纵二维线性几何形状的API +// implementation group: 'com.vividsolutions', name: 'jts', version: '1.13' + //Json解析 +// implementation group: 'org.codehaus.jackson', name: 'jackson-core-lgpl', version: '1.9.13' + //Jackson数据映射 +// implementation group: 'org.codehaus.jackson', name: 'jackson-mapper-lgpl', version: '1.9.13' + //xml解析 +// implementation group: 'net.sf.kxml', name: 'kxml2', version: '2.3.0' +// implementation 'com.lbx:xTools:2.1.2' } diff --git a/app/libs/androidsvg-1.2.2-beta-1.jar b/app/libs/androidsvg-1.2.2-beta-1.jar deleted file mode 100644 index aa69f00..0000000 --- a/app/libs/androidsvg-1.2.2-beta-1.jar +++ /dev/null Binary files differ diff --git a/app/libs/guava-17.0.jar b/app/libs/guava-17.0.jar deleted file mode 100644 index 661fc74..0000000 --- a/app/libs/guava-17.0.jar +++ /dev/null Binary files differ diff --git a/app/libs/jackson-core-lgpl-1.9.5.jar b/app/libs/jackson-core-lgpl-1.9.5.jar deleted file mode 100644 index 89dc160..0000000 --- a/app/libs/jackson-core-lgpl-1.9.5.jar +++ /dev/null Binary files differ diff --git a/app/libs/jackson-mapper-lgpl-1.9.5.jar b/app/libs/jackson-mapper-lgpl-1.9.5.jar deleted file mode 100644 index 095ffb3..0000000 --- a/app/libs/jackson-mapper-lgpl-1.9.5.jar +++ /dev/null Binary files differ diff --git a/app/libs/jts-1.13.jar b/app/libs/jts-1.13.jar deleted file mode 100644 index bbaa20b..0000000 --- a/app/libs/jts-1.13.jar +++ /dev/null Binary files differ diff --git a/app/libs/kxml2-2.3.0.jar b/app/libs/kxml2-2.3.0.jar deleted file mode 100644 index 6470952..0000000 --- a/app/libs/kxml2-2.3.0.jar +++ /dev/null Binary files differ diff --git a/app/libs/libfriapkrecord-r1.0.1.aar b/app/libs/libfriapkrecord-r1.0.1.aar new file mode 100644 index 0000000..ad69876 --- /dev/null +++ b/app/libs/libfriapkrecord-r1.0.1.aar Binary files differ diff --git a/app/src/androidTest/java/com/casic/smartwellapp/ExampleInstrumentedTest.java b/app/src/androidTest/java/com/casic/smartwellapp/ExampleInstrumentedTest.java deleted file mode 100644 index 3013492..0000000 --- a/app/src/androidTest/java/com/casic/smartwellapp/ExampleInstrumentedTest.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.casic.smartwellapp; - -import android.content.Context; - -import androidx.test.InstrumentationRegistry; -import androidx.test.runner.AndroidJUnit4; - -import org.junit.Test; -import org.junit.runner.RunWith; - -import static org.junit.Assert.*; - -/** - * Instrumented test, which will execute on an Android device. - * - * @see Testing documentation - */ -@RunWith(AndroidJUnit4.class) -public class ExampleInstrumentedTest { - @Test - public void useAppContext() { - // Context of the app under test. - Context appContext = InstrumentationRegistry.getTargetContext(); - - assertEquals("com.casic.smartwellapp", appContext.getPackageName()); - } -} diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 4eeda90..bc63fec 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -3,6 +3,9 @@ xmlns:tools="http://schemas.android.com/tools" package="com.casic.smartwellapp"> + @@ -20,22 +23,23 @@ - - - + + + diff --git a/app/src/main/assets/error.html b/app/src/main/assets/error.html index dcd365f..5abea9c 100644 --- a/app/src/main/assets/error.html +++ b/app/src/main/assets/error.html @@ -1,82 +1,90 @@ - - - - 404 - - - -
- -
-
- -
-
- 请检查网络后重试 -
- - - -
-
- - - + .text-area { + + height: 75px; + } + + .tips { + font-size: 25px; + line-height: 35px; + color: white; + text-align: center; + } + + .tips img { + width: 70%; + } + + .btn { + margin-top: 5%; + text-align: center; + } + + .btn button { + font-size: 30px; + padding: 10px 20px; + border-radius: 20px; + background-color: #ffee00; + color: #ff7700; + margin: 0 auto; + } + + .btn button:hover { + background-color: #ffbb00; + color: #ffff00; + } + + + +
+ +
+
+ +
+
+ 请检查网络后重试 +
+ + + +
+
+ + + diff --git a/app/src/main/assets/hello.html b/app/src/main/assets/hello.html index 5c45033..5fde805 100644 --- a/app/src/main/assets/hello.html +++ b/app/src/main/assets/hello.html @@ -1,64 +1,73 @@ - - - - 404 - - - -
-
- - + .airplane { + width: 50%; + margin: 20% 25% 10% 25%; + text-align: center; + } + + .text-area { + + height: 75px; + } + + .tips { + font-size: 25px; + line-height: 35px; + color: white; + text-align: center; + } + + .tips img { + width: 70%; + } + + .btn { + margin-top: 5%; + text-align: center; + } + + .btn button { + font-size: 30px; + padding: 10px 20px; + border-radius: 20px; + background-color: #ffee00; + color: #ff7700; + margin: 0 auto; + } + + .btn button:hover { + background-color: #ffbb00; + color: #ffff00; + } + + + +
+
+ + diff --git a/app/src/main/assets/index.html b/app/src/main/assets/index.html index d5b666a..1e55e53 100644 --- a/app/src/main/assets/index.html +++ b/app/src/main/assets/index.html @@ -1 +1,18 @@ -智能闸井
\ No newline at end of file + + + + + + + + 智能闸井 + + + +
+ + + + + diff --git a/app/src/main/assets/map.html b/app/src/main/assets/map.html index 6665800..d9f8d04 100644 --- a/app/src/main/assets/map.html +++ b/app/src/main/assets/map.html @@ -1,79 +1,79 @@ - - - - - - easyMap JavaScript API Example: simple + + + + + + easyMap JavaScript API Example: simple - - + + - - - -
- - - + var pIcon = new Icon(); // 构造一个图标类 + pIcon.image = "static/images/location.png"; + pIcon.height = 16; + pIcon.width = 16; + var strMsg = theRequest.pointname; + var marker = new Marker(centerP, pIcon); // 构造一个标记叠加对象 + uEzMap.addOverlay(marker); // 将标记叠加对象添加到地图中 + // 构造鹰眼对象 + var ov = new OverView(); + // 设置鹰眼的宽度,单位为像素px + ov.width = 200; + // 设置鹰眼的高度 + ov.height = 200; + // 添加鹰眼对象到地图对象中 + uEzMap.addOverView(ov); + } + + + diff --git a/app/src/main/java/com/casic/smartwellapp/Entity/Constant.java b/app/src/main/java/com/casic/smartwellapp/Entity/Constant.java index 66d61e1..99c2ff3 100644 --- a/app/src/main/java/com/casic/smartwellapp/Entity/Constant.java +++ b/app/src/main/java/com/casic/smartwellapp/Entity/Constant.java @@ -1,11 +1,9 @@ package com.casic.smartwellapp.Entity; import android.Manifest; -import android.os.Environment; public class Constant { - public static final String LICENSE_PATH = Environment.getExternalStorageDirectory() + "/PGIS/license/EzServiceClient4Android.lic"; - // public static final String LICENSE_PATH = "file:///android_asset/EzServiceClient4Android.lic"; public static final int PERMISSIONS_CODE = 11; - public static final String[] USER_PERMISSIONS = {Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE}; + public static final String[] USER_PERMISSIONS = {Manifest.permission.READ_EXTERNAL_STORAGE, + Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.READ_PHONE_STATE}; } diff --git a/app/src/main/java/com/casic/smartwellapp/Entity/Data.java b/app/src/main/java/com/casic/smartwellapp/Entity/Data.java index 317acb9..bd79a68 100644 --- a/app/src/main/java/com/casic/smartwellapp/Entity/Data.java +++ b/app/src/main/java/com/casic/smartwellapp/Entity/Data.java @@ -1,8 +1,8 @@ package com.casic.smartwellapp.Entity; public class Data { - String identityCard; - String name; + private String identityCard; + private String name; public String getIdentityCard() { return identityCard; diff --git a/app/src/main/java/com/casic/smartwellapp/Entity/DeviceData.java b/app/src/main/java/com/casic/smartwellapp/Entity/DeviceData.java index a17c74a..1f064c4 100644 --- a/app/src/main/java/com/casic/smartwellapp/Entity/DeviceData.java +++ b/app/src/main/java/com/casic/smartwellapp/Entity/DeviceData.java @@ -1,12 +1,12 @@ package com.casic.smartwellapp.Entity; public class DeviceData { - String name; - String card; - String yys; - String imei = ""; + private String name; + private String card; + private String yys; + private String imei; - public DeviceData(String name, String card, String yys,String imei) { + public DeviceData(String name, String card, String yys, String imei) { this.name = name; this.card = card; this.yys = yys; diff --git a/app/src/main/java/com/casic/smartwellapp/Entity/LoginReturn.java b/app/src/main/java/com/casic/smartwellapp/Entity/LoginReturn.java index 7ed1948..4f3d7c9 100644 --- a/app/src/main/java/com/casic/smartwellapp/Entity/LoginReturn.java +++ b/app/src/main/java/com/casic/smartwellapp/Entity/LoginReturn.java @@ -2,9 +2,9 @@ public class LoginReturn { - String code; - String msg; - Data data; + private String code; + private String msg; + private Data data; public String getCode() { return code; diff --git a/app/src/main/java/com/casic/smartwellapp/MainActivity.java b/app/src/main/java/com/casic/smartwellapp/MainActivity.java index b88eb70..98a6315 100644 --- a/app/src/main/java/com/casic/smartwellapp/MainActivity.java +++ b/app/src/main/java/com/casic/smartwellapp/MainActivity.java @@ -2,9 +2,9 @@ import android.Manifest; import android.annotation.SuppressLint; -import android.app.Activity; import android.content.Context; import android.content.Intent; +import android.content.pm.ApplicationInfo; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.net.Uri; @@ -23,12 +23,14 @@ import android.webkit.WebViewClient; import android.widget.Toast; -import androidx.annotation.RequiresApi; -import androidx.appcompat.app.AppCompatActivity; +import androidx.annotation.Nullable; import androidx.core.app.ActivityCompat; import com.casic.smartwellapp.Entity.DeviceData; import com.casic.smartwellapp.Entity.LoginReturn; +import com.casic.smartwellapp.base.BaseActivity; +import com.casic.smartwellapp.uitil.SaveKeyValues; +import com.fri.libfriapkrecord.read.SignRecordTools; import com.google.gson.Gson; import com.telecomyt.oauthlogin.bean.JiAnBaoCheckResult; import com.telecomyt.oauthlogin.http.HttpCallback; @@ -37,10 +39,13 @@ import java.lang.reflect.Method; import java.util.List; -import static com.telecomyt.oauthlogin.config.Config.LOG_TAG; +public class MainActivity extends BaseActivity { -public class MainActivity extends AppCompatActivity { + private static final String TAG = "MainActivity"; + private static final String oauth_url = "http://menhu.telecomyt.com.cn:8080/"; //单点登录验证地址 + private static final int LOGIN_CODE = 1001; + private static final int REQUEST_READ_PHONE_STATE = 1; private WebView webview; private String token;// token @@ -49,49 +54,28 @@ private String yys; //运营商 private LoginReturn userInfoResult = null; //单点登录返回的用户信息 private DeviceData deviceData = null; //给用户返回的数据 - - private static final String oauth_url = "http://menhu.telecomyt.com.cn:8080/"; //单点登录验证地址 - private long exitTime = 0; //点击退出时间 - - private static final int LOGIN_CODE = 1001; - public static final int REQUEST_READ_PHONE_STATE = 1; - private String msgId; //推送消息id private String msgContent; //推送消息内容 - @RequiresApi(api = Build.VERSION_CODES.KITKAT) @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setContentView(R.layout.activity_main); - try { - Intent intent = new Intent("com.telecomyt.portal.OAUTH"); - intent.putExtra("appID", "3pb316_oauth"); - intent.putExtra("version", "v1"); - startActivityForResult(intent, 1001);//REQUEST_CODE:为自己定义的回调的代码标记。 - } catch (Exception e) { - Toast.makeText(MainActivity.this, "请先安装警务门户", Toast.LENGTH_SHORT).show(); - Log.e(LOG_TAG, "请先安装警务门户"); - } + public int initLayoutView() { + return R.layout.activity_main; + } -// imei = getIMEI(getApplicationContext()); -// imei = getDeviceId(MainActivity.this); + @Override + public void initDataWithState(@Nullable Bundle savedInstanceState) { + + } + + @Override + public void initData() { imei = obtainSimCardSerialNumber();//20210524 Pengxh修改 - -// if (getIntent() != null) { -//// Intent intent = getIntent(); -//// msgId = intent.getStringExtra("id"); -//// msgContent = intent.getStringExtra("content"); -//// Toast.makeText(MainActivity.this,msgContent,Toast.LENGTH_SHORT).show(); -//// Log.e("push",msgContent); -//// } - - //webview + Log.d(TAG, "imei === " + imei); + obtainRecordNumber();//20210813 Pengxh修改 // 获取控件对象 - webview = findViewById(R.id.WV_ID); + webview = findViewById(R.id.webView); WebView.setWebContentsDebuggingEnabled(true); - WebSettings settings = webview.getSettings(); settings.setJavaScriptEnabled(true);//设置webView属性,允许运行js脚本 settings.setDomStorageEnabled(true); @@ -101,7 +85,19 @@ settings.setAllowFileAccess(true);//可访问文件 settings.setDefaultTextEncodingName("UTF-8"); settings.setAllowUniversalAccessFromFileURLs(true); + } + @Override + public void initEvent() { + try { + Intent intent = new Intent("com.telecomyt.portal.OAUTH"); + intent.putExtra("appID", "3pb316_oauth"); + intent.putExtra("version", "v1"); + startActivityForResult(intent, 1001);//REQUEST_CODE:为自己定义的回调的代码标记。 + } catch (Exception e) { + Toast.makeText(MainActivity.this, "请先安装警务门户", Toast.LENGTH_SHORT).show(); + Log.d(TAG, "onCreate-->请先安装警务门户"); + } // 设置在当前WebView继续加载网页 webview.setWebViewClient(new WebViewClient() { @Override @@ -110,13 +106,13 @@ // 处理自定义scheme协议 if (!url.startsWith("http")) { //处理自定义scheme-->androidamap://viewMap?poiname=W00002&lat=39.9055035111111&lng=116.376759027778 - Log.e("scheme", "处理自定义scheme-->" + url); + Log.d(TAG, "处理自定义scheme-->" + url); // 如果要跳转地图 if (url.startsWith("androidamap:")) { String lat = "", lng = "", pointname = ""; //获取问号后的参数 String params = url.substring(url.indexOf('?')); - Log.i("map", params); + Log.d(TAG, "问号后的参数 === " + params); if (url.contains("?")) { String str = params.substring(1); String[] strs = str.split("&"); @@ -161,10 +157,8 @@ } public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) { - //handler.cancel(); 默认的处理方式,WebView变成空白页 //接受证书 handler.proceed(); - //handleMessage(Message msg); 其他处理 } @Override @@ -176,7 +170,6 @@ }); // 给web提供调用接口 webview.addJavascriptInterface(new WebAppInterface(), "android"); - // 加载html文件,欢迎页面 webview.loadUrl("file:///android_asset/hello.html"); } @@ -201,12 +194,12 @@ if (requestCode == 1001) { if (data != null) { String result = data.getStringExtra("result"); - Log.e(LOG_TAG, "吉安宝验证结果 result === " + result); + Log.d(TAG, "吉安宝验证结果 result === " + result); JiAnBaoCheckResult tokenResult = new Gson().fromJson(result, JiAnBaoCheckResult.class); if (tokenResult != null) { if (tokenResult.isResult()) { token = tokenResult.getSubjectDN(); - Log.e(LOG_TAG, "token === " + token); + Log.d(TAG, "token === " + token); // webview.loadUrl("file:///android_asset/index.html?token="+token); if (!TextUtils.isEmpty(token)) { HttpOauthCheckUtil.getInstance().getUserInfo(oauth_url, token, new HttpCallback() { @@ -214,19 +207,19 @@ public void onSuccess(String result) { Toast.makeText(getApplicationContext(), "认证通过,欢迎使用", Toast.LENGTH_SHORT).show(); - Log.e(LOG_TAG, "门户验证结果 === " + result); + Log.d(TAG, "门户验证结果 === " + result); userInfoResult = new Gson().fromJson(result, LoginReturn.class); yys = getYys(getApplicationContext()); String name = userInfoResult.getData().getName(); String identifyCard = userInfoResult.getData().getIdentityCard(); deviceData = new DeviceData(name, identifyCard, yys, imei); - Log.i("deviceData", deviceData.toString()); + Log.d(TAG, "deviceData === " + deviceData.toString()); webview.loadUrl("file:///android_asset/index.html"); } @Override public void onFailed(String err) { - Log.e(LOG_TAG, "错误信息 === " + err); + Log.d(TAG, "错误信息 === " + err); Toast.makeText(getApplicationContext(), err, Toast.LENGTH_SHORT).show(); } @@ -236,38 +229,24 @@ //吉安宝认证失败 Toast.makeText(getApplicationContext(), "吉安宝认证失败", Toast.LENGTH_SHORT).show(); - Log.e(LOG_TAG, "吉安宝认证失败 "); + Log.d(TAG, "吉安宝认证失败 "); } } else { Toast.makeText(getApplicationContext(), "请检查网络", Toast.LENGTH_SHORT).show(); - Log.e(LOG_TAG, "请检查网络"); + Log.d(TAG, "请检查网络"); } } } } -// if (requestCode == LOGIN_CODE && resultCode == 100) { // resultCode 固定为100 -// String result = intent.getStringExtra("result"); -// //result为json格式字符串,其中 result: true 为认证成功,false为失败;code: 错误代码 -// // TODO:解析result -// LoginReturn loginReturn = JSON.parseObject(result, LoginReturn.class); -// if(loginReturn.isResult()){//如果result是true -// this.token = loginReturn.getSubjectDN();//token -// }else{ -// -// } -// Log.i("ActivityResult", "onActivityResult: " + result); -// } -// super.onActivityResult(requestCode, resultCode, intent); } - //我们需要重写回退按钮的时间,当用户点击回退按钮: //1.webView.canGoBack()判断网页是否能后退,可以则goback() //2.如果不可以连续点击两次退出App,否则弹出提示Toast @Override public void onBackPressed() { - Log.i("webUrl", "webviewUrl" + webview.getUrl()); + Log.d(TAG, "onBackPressed === " + webview.getUrl()); if (webview.canGoBack() && !webview.getUrl().endsWith("/#/") && !webview.getUrl().endsWith("/#/login")) { webview.goBack(); } else { @@ -285,7 +264,7 @@ public String getUser() { if (deviceData != null) { String json = new Gson().toJson(deviceData); - Log.i("JSON:", json); + Log.d(TAG, "json === " + json); return json; } else { return ""; @@ -302,6 +281,12 @@ return null; } } + + //提供JS调用Android接口方法 + @JavascriptInterface + public String readRecordNumber() { + return (String) SaveKeyValues.getValue("RecordNumber", ""); + } } //获取运营商 @@ -322,38 +307,10 @@ default: } } - Log.i("yys", "yys:" + yys); -// Toast.makeText(context, "运营商:"+yys, Toast.LENGTH_SHORT).show(); + Log.d(TAG, "运营商 === " + yys); return yys; } - public String getIMEI(Context context) { - TelephonyManager telephonyManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); - @SuppressLint("MissingPermission") String imei = telephonyManager.getDeviceId(); - Log.i("imei", "yys:" + imei); - Toast.makeText(context, "imei:" + imei, Toast.LENGTH_SHORT).show(); - return imei; - } - - @SuppressLint("HardwareIds") - public static String getDeviceId(Context context) { - String deviceId = ""; - TelephonyManager tm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE); - if (null != tm) { - if (ActivityCompat.checkSelfPermission(context, Manifest.permission.READ_PHONE_STATE) != PackageManager.PERMISSION_GRANTED) { - ActivityCompat.requestPermissions((Activity) context, new String[]{Manifest.permission.READ_PHONE_STATE}, REQUEST_READ_PHONE_STATE); - } else { - if (tm.getDeviceId() != null) { - deviceId = tm.getDeviceId(); - } else { - deviceId = Settings.Secure.getString(context.getApplicationContext().getContentResolver(), Settings.Secure.ANDROID_ID); - } - } - Log.d("deviceId--->", "deviceId:" + deviceId); - } - return deviceId; - } - //获取SimSerialNumber @SuppressLint({"HardwareIds"}) public String obtainSimCardSerialNumber() { @@ -367,6 +324,7 @@ telephonyClass = Class.forName(telephony.getClass().getName()); if (ActivityCompat.checkSelfPermission(this, Manifest.permission.READ_PHONE_STATE) != PackageManager.PERMISSION_GRANTED) { ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.READ_PHONE_STATE}, REQUEST_READ_PHONE_STATE); + return ""; } //Android 10以下默认获取deviceId,部分手机获取不到deviceId不到的改为获取sim卡串码,如果依旧获取不到,返回"" String imei = telephony.getDeviceId(); @@ -386,5 +344,16 @@ } return ""; } + + //根据移动警务要求,增加备案号获取sdk + private void obtainRecordNumber() { + ApplicationInfo appInfo = getApplicationInfo(); + if (appInfo == null) { + return; + } + String number = SignRecordTools.readNumbers(appInfo.sourceDir); + Log.d(TAG, "全国注册备案号: " + number); + SaveKeyValues.putValue("RecordNumber", number); + } } diff --git a/app/src/main/java/com/casic/smartwellapp/MapInitActivity.java b/app/src/main/java/com/casic/smartwellapp/MapInitActivity.java index 9cc84e9..a4f4d04 100644 --- a/app/src/main/java/com/casic/smartwellapp/MapInitActivity.java +++ b/app/src/main/java/com/casic/smartwellapp/MapInitActivity.java @@ -1,11 +1,13 @@ package com.casic.smartwellapp; -import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.os.Environment; import android.widget.TextView; +import androidx.annotation.Nullable; + +import com.casic.smartwellapp.base.BaseActivity; import com.easymap.android.maps.v3.EzMap; import com.easymap.android.maps.v3.MapView; import com.easymap.android.maps.v3.geometry.GeoPoint; @@ -20,7 +22,7 @@ import java.io.IOException; import java.io.InputStream; -public class MapInitActivity extends Activity implements EzMap.OnStatusChangeListener { +public class MapInitActivity extends BaseActivity implements EzMap.OnStatusChangeListener { private static final String TAG = "MapInitActivity"; private MapView mapView; @@ -29,9 +31,12 @@ private String pointname; @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setContentView(R.layout.activity_map_init); + public int initLayoutView() { + return R.layout.activity_map_init; + } + + @Override + public void initDataWithState(@Nullable Bundle savedInstanceState) { Intent i = getIntent(); lng = i.getStringExtra("lng"); lat = i.getStringExtra("lat"); @@ -51,6 +56,16 @@ } @Override + public void initData() { + + } + + @Override + public void initEvent() { + + } + + @Override public void onStatusChanged(STATUS arg0) { TextView textview = findViewById(R.id.textview); textview.setText(pointname); diff --git a/app/build.gradle b/app/build.gradle index 0614b2f..5ec7f4d 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,15 +1,24 @@ apply plugin: 'com.android.application' android { - compileSdkVersion 29 - buildToolsVersion "29.0.3" + compileSdkVersion 30 + buildToolsVersion "30.0.3" defaultConfig { applicationId "com.casic.smartwellapp" - minSdkVersion 17 - targetSdkVersion 29 - versionCode 8 - versionName "v1.1.2" - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + //备案号sdk版本要求最低24 + minSdkVersion 24 + targetSdkVersion 30 + /** + * 使用中版本如下: + * versionCode 8 + * versionName "v1.1.2" + * + * 待测试上架版本: + * versionCode 9 + * versionName "v1.1.3" + * */ + versionCode 9 + versionName "v1.1.3" multiDexEnabled true } buildTypes { @@ -37,32 +46,50 @@ exclude 'META-INF/LGPL2.1' exclude 'META-INF/services/javax.annotation.processing.Processor' exclude 'META-INF/rxjava.properties' - exclude 'org/codehaus/jackson/impl/VERSION.txt' - exclude 'org/codehaus/jackson/map/VERSION.txt' +// exclude 'org/codehaus/jackson/impl/VERSION.txt' +// exclude 'org/codehaus/jackson/map/VERSION.txt' + } + + //导入aar包 + repositories { + flatDir { + dirs 'libs' + } } } dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') - implementation 'androidx.appcompat:appcompat:1.2.0' - implementation 'androidx.constraintlayout:constraintlayout:2.0.4' - implementation 'pub.devrel:easypermissions:1.3.0' - testImplementation 'junit:junit:4.12' - androidTestImplementation 'androidx.test:runner:1.2.0' - androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0' + //移动警务授权sdk implementation files('libs/OauthLoginJar_V1.0.jar') - implementation 'com.lbx:xTools:2.1.2' - implementation 'org.bouncycastle:bcmail-jdk15on:1.59' - implementation 'org.apache.commons:commons-lang3:3.1' - implementation 'com.alibaba:fastjson:1.2.68' - implementation files('libs/guava-17.0.jar') - implementation files('libs/androidsvg-1.2.2-beta-1.jar') + //山海易绘离线地图 implementation files('libs/EzMapServiceApiForAndroid-1.0.3.0.jar') implementation files('libs/EzRouterAPIForAndroid.v1.0.1.201206151022.jar') - implementation files('libs/jts-1.13.jar') - implementation files('libs/kxml2-2.3.0.jar') implementation files('libs/EzLicenseAPI4Android.jar') implementation files('libs/EzMapApiForAndnroid.3.1.0.2.jar') - implementation files('libs/jackson-core-lgpl-1.9.5.jar') - implementation files('libs/jackson-mapper-lgpl-1.9.5.jar') + //移动警务备案号sdk + implementation(name: 'libfriapkrecord-r1.0.1', ext: 'aar') + implementation 'androidx.appcompat:appcompat:1.2.0' + //Google申请手机相关权限官方库 + implementation group: 'pub.devrel', name: 'easypermissions', version: '3.0.0' + //Google官方Json解析 + implementation group: 'com.google.code.gson', name: 'gson', version: '2.8.6' +// implementation group: 'org.bouncycastle', name: 'bcmail-jdk15on', version: '1.68' + //公共帮助类 +// implementation group: 'org.apache.commons', name: 'commons-lang3', version: '3.1' + //阿里巴巴Json解析库 +// implementation group: 'com.alibaba', name: 'fastjson', version: '1.2.76' + //Google提供的一套工具类 +// implementation group: 'com.google.guava', name: 'guava', version: '30.1.1-jre' + //‎安卓SVG渲染库 +// implementation group: 'com.caverock', name: 'androidsvg', version: '1.4' + //JTS拓扑套件是用于建模和操纵二维线性几何形状的API +// implementation group: 'com.vividsolutions', name: 'jts', version: '1.13' + //Json解析 +// implementation group: 'org.codehaus.jackson', name: 'jackson-core-lgpl', version: '1.9.13' + //Jackson数据映射 +// implementation group: 'org.codehaus.jackson', name: 'jackson-mapper-lgpl', version: '1.9.13' + //xml解析 +// implementation group: 'net.sf.kxml', name: 'kxml2', version: '2.3.0' +// implementation 'com.lbx:xTools:2.1.2' } diff --git a/app/libs/androidsvg-1.2.2-beta-1.jar b/app/libs/androidsvg-1.2.2-beta-1.jar deleted file mode 100644 index aa69f00..0000000 --- a/app/libs/androidsvg-1.2.2-beta-1.jar +++ /dev/null Binary files differ diff --git a/app/libs/guava-17.0.jar b/app/libs/guava-17.0.jar deleted file mode 100644 index 661fc74..0000000 --- a/app/libs/guava-17.0.jar +++ /dev/null Binary files differ diff --git a/app/libs/jackson-core-lgpl-1.9.5.jar b/app/libs/jackson-core-lgpl-1.9.5.jar deleted file mode 100644 index 89dc160..0000000 --- a/app/libs/jackson-core-lgpl-1.9.5.jar +++ /dev/null Binary files differ diff --git a/app/libs/jackson-mapper-lgpl-1.9.5.jar b/app/libs/jackson-mapper-lgpl-1.9.5.jar deleted file mode 100644 index 095ffb3..0000000 --- a/app/libs/jackson-mapper-lgpl-1.9.5.jar +++ /dev/null Binary files differ diff --git a/app/libs/jts-1.13.jar b/app/libs/jts-1.13.jar deleted file mode 100644 index bbaa20b..0000000 --- a/app/libs/jts-1.13.jar +++ /dev/null Binary files differ diff --git a/app/libs/kxml2-2.3.0.jar b/app/libs/kxml2-2.3.0.jar deleted file mode 100644 index 6470952..0000000 --- a/app/libs/kxml2-2.3.0.jar +++ /dev/null Binary files differ diff --git a/app/libs/libfriapkrecord-r1.0.1.aar b/app/libs/libfriapkrecord-r1.0.1.aar new file mode 100644 index 0000000..ad69876 --- /dev/null +++ b/app/libs/libfriapkrecord-r1.0.1.aar Binary files differ diff --git a/app/src/androidTest/java/com/casic/smartwellapp/ExampleInstrumentedTest.java b/app/src/androidTest/java/com/casic/smartwellapp/ExampleInstrumentedTest.java deleted file mode 100644 index 3013492..0000000 --- a/app/src/androidTest/java/com/casic/smartwellapp/ExampleInstrumentedTest.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.casic.smartwellapp; - -import android.content.Context; - -import androidx.test.InstrumentationRegistry; -import androidx.test.runner.AndroidJUnit4; - -import org.junit.Test; -import org.junit.runner.RunWith; - -import static org.junit.Assert.*; - -/** - * Instrumented test, which will execute on an Android device. - * - * @see Testing documentation - */ -@RunWith(AndroidJUnit4.class) -public class ExampleInstrumentedTest { - @Test - public void useAppContext() { - // Context of the app under test. - Context appContext = InstrumentationRegistry.getTargetContext(); - - assertEquals("com.casic.smartwellapp", appContext.getPackageName()); - } -} diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 4eeda90..bc63fec 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -3,6 +3,9 @@ xmlns:tools="http://schemas.android.com/tools" package="com.casic.smartwellapp"> + @@ -20,22 +23,23 @@ - - - + + + diff --git a/app/src/main/assets/error.html b/app/src/main/assets/error.html index dcd365f..5abea9c 100644 --- a/app/src/main/assets/error.html +++ b/app/src/main/assets/error.html @@ -1,82 +1,90 @@ - - - - 404 - - - -
- -
-
- -
-
- 请检查网络后重试 -
- - - -
-
- - - + .text-area { + + height: 75px; + } + + .tips { + font-size: 25px; + line-height: 35px; + color: white; + text-align: center; + } + + .tips img { + width: 70%; + } + + .btn { + margin-top: 5%; + text-align: center; + } + + .btn button { + font-size: 30px; + padding: 10px 20px; + border-radius: 20px; + background-color: #ffee00; + color: #ff7700; + margin: 0 auto; + } + + .btn button:hover { + background-color: #ffbb00; + color: #ffff00; + } + + + +
+ +
+
+ +
+
+ 请检查网络后重试 +
+ + + +
+
+ + + diff --git a/app/src/main/assets/hello.html b/app/src/main/assets/hello.html index 5c45033..5fde805 100644 --- a/app/src/main/assets/hello.html +++ b/app/src/main/assets/hello.html @@ -1,64 +1,73 @@ - - - - 404 - - - -
-
- - + .airplane { + width: 50%; + margin: 20% 25% 10% 25%; + text-align: center; + } + + .text-area { + + height: 75px; + } + + .tips { + font-size: 25px; + line-height: 35px; + color: white; + text-align: center; + } + + .tips img { + width: 70%; + } + + .btn { + margin-top: 5%; + text-align: center; + } + + .btn button { + font-size: 30px; + padding: 10px 20px; + border-radius: 20px; + background-color: #ffee00; + color: #ff7700; + margin: 0 auto; + } + + .btn button:hover { + background-color: #ffbb00; + color: #ffff00; + } + + + +
+
+ + diff --git a/app/src/main/assets/index.html b/app/src/main/assets/index.html index d5b666a..1e55e53 100644 --- a/app/src/main/assets/index.html +++ b/app/src/main/assets/index.html @@ -1 +1,18 @@ -智能闸井
\ No newline at end of file + + + + + + + + 智能闸井 + + + +
+ + + + + diff --git a/app/src/main/assets/map.html b/app/src/main/assets/map.html index 6665800..d9f8d04 100644 --- a/app/src/main/assets/map.html +++ b/app/src/main/assets/map.html @@ -1,79 +1,79 @@ - - - - - - easyMap JavaScript API Example: simple + + + + + + easyMap JavaScript API Example: simple - - + + - - - -
- - - + var pIcon = new Icon(); // 构造一个图标类 + pIcon.image = "static/images/location.png"; + pIcon.height = 16; + pIcon.width = 16; + var strMsg = theRequest.pointname; + var marker = new Marker(centerP, pIcon); // 构造一个标记叠加对象 + uEzMap.addOverlay(marker); // 将标记叠加对象添加到地图中 + // 构造鹰眼对象 + var ov = new OverView(); + // 设置鹰眼的宽度,单位为像素px + ov.width = 200; + // 设置鹰眼的高度 + ov.height = 200; + // 添加鹰眼对象到地图对象中 + uEzMap.addOverView(ov); + } + + + diff --git a/app/src/main/java/com/casic/smartwellapp/Entity/Constant.java b/app/src/main/java/com/casic/smartwellapp/Entity/Constant.java index 66d61e1..99c2ff3 100644 --- a/app/src/main/java/com/casic/smartwellapp/Entity/Constant.java +++ b/app/src/main/java/com/casic/smartwellapp/Entity/Constant.java @@ -1,11 +1,9 @@ package com.casic.smartwellapp.Entity; import android.Manifest; -import android.os.Environment; public class Constant { - public static final String LICENSE_PATH = Environment.getExternalStorageDirectory() + "/PGIS/license/EzServiceClient4Android.lic"; - // public static final String LICENSE_PATH = "file:///android_asset/EzServiceClient4Android.lic"; public static final int PERMISSIONS_CODE = 11; - public static final String[] USER_PERMISSIONS = {Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE}; + public static final String[] USER_PERMISSIONS = {Manifest.permission.READ_EXTERNAL_STORAGE, + Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.READ_PHONE_STATE}; } diff --git a/app/src/main/java/com/casic/smartwellapp/Entity/Data.java b/app/src/main/java/com/casic/smartwellapp/Entity/Data.java index 317acb9..bd79a68 100644 --- a/app/src/main/java/com/casic/smartwellapp/Entity/Data.java +++ b/app/src/main/java/com/casic/smartwellapp/Entity/Data.java @@ -1,8 +1,8 @@ package com.casic.smartwellapp.Entity; public class Data { - String identityCard; - String name; + private String identityCard; + private String name; public String getIdentityCard() { return identityCard; diff --git a/app/src/main/java/com/casic/smartwellapp/Entity/DeviceData.java b/app/src/main/java/com/casic/smartwellapp/Entity/DeviceData.java index a17c74a..1f064c4 100644 --- a/app/src/main/java/com/casic/smartwellapp/Entity/DeviceData.java +++ b/app/src/main/java/com/casic/smartwellapp/Entity/DeviceData.java @@ -1,12 +1,12 @@ package com.casic.smartwellapp.Entity; public class DeviceData { - String name; - String card; - String yys; - String imei = ""; + private String name; + private String card; + private String yys; + private String imei; - public DeviceData(String name, String card, String yys,String imei) { + public DeviceData(String name, String card, String yys, String imei) { this.name = name; this.card = card; this.yys = yys; diff --git a/app/src/main/java/com/casic/smartwellapp/Entity/LoginReturn.java b/app/src/main/java/com/casic/smartwellapp/Entity/LoginReturn.java index 7ed1948..4f3d7c9 100644 --- a/app/src/main/java/com/casic/smartwellapp/Entity/LoginReturn.java +++ b/app/src/main/java/com/casic/smartwellapp/Entity/LoginReturn.java @@ -2,9 +2,9 @@ public class LoginReturn { - String code; - String msg; - Data data; + private String code; + private String msg; + private Data data; public String getCode() { return code; diff --git a/app/src/main/java/com/casic/smartwellapp/MainActivity.java b/app/src/main/java/com/casic/smartwellapp/MainActivity.java index b88eb70..98a6315 100644 --- a/app/src/main/java/com/casic/smartwellapp/MainActivity.java +++ b/app/src/main/java/com/casic/smartwellapp/MainActivity.java @@ -2,9 +2,9 @@ import android.Manifest; import android.annotation.SuppressLint; -import android.app.Activity; import android.content.Context; import android.content.Intent; +import android.content.pm.ApplicationInfo; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.net.Uri; @@ -23,12 +23,14 @@ import android.webkit.WebViewClient; import android.widget.Toast; -import androidx.annotation.RequiresApi; -import androidx.appcompat.app.AppCompatActivity; +import androidx.annotation.Nullable; import androidx.core.app.ActivityCompat; import com.casic.smartwellapp.Entity.DeviceData; import com.casic.smartwellapp.Entity.LoginReturn; +import com.casic.smartwellapp.base.BaseActivity; +import com.casic.smartwellapp.uitil.SaveKeyValues; +import com.fri.libfriapkrecord.read.SignRecordTools; import com.google.gson.Gson; import com.telecomyt.oauthlogin.bean.JiAnBaoCheckResult; import com.telecomyt.oauthlogin.http.HttpCallback; @@ -37,10 +39,13 @@ import java.lang.reflect.Method; import java.util.List; -import static com.telecomyt.oauthlogin.config.Config.LOG_TAG; +public class MainActivity extends BaseActivity { -public class MainActivity extends AppCompatActivity { + private static final String TAG = "MainActivity"; + private static final String oauth_url = "http://menhu.telecomyt.com.cn:8080/"; //单点登录验证地址 + private static final int LOGIN_CODE = 1001; + private static final int REQUEST_READ_PHONE_STATE = 1; private WebView webview; private String token;// token @@ -49,49 +54,28 @@ private String yys; //运营商 private LoginReturn userInfoResult = null; //单点登录返回的用户信息 private DeviceData deviceData = null; //给用户返回的数据 - - private static final String oauth_url = "http://menhu.telecomyt.com.cn:8080/"; //单点登录验证地址 - private long exitTime = 0; //点击退出时间 - - private static final int LOGIN_CODE = 1001; - public static final int REQUEST_READ_PHONE_STATE = 1; - private String msgId; //推送消息id private String msgContent; //推送消息内容 - @RequiresApi(api = Build.VERSION_CODES.KITKAT) @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setContentView(R.layout.activity_main); - try { - Intent intent = new Intent("com.telecomyt.portal.OAUTH"); - intent.putExtra("appID", "3pb316_oauth"); - intent.putExtra("version", "v1"); - startActivityForResult(intent, 1001);//REQUEST_CODE:为自己定义的回调的代码标记。 - } catch (Exception e) { - Toast.makeText(MainActivity.this, "请先安装警务门户", Toast.LENGTH_SHORT).show(); - Log.e(LOG_TAG, "请先安装警务门户"); - } + public int initLayoutView() { + return R.layout.activity_main; + } -// imei = getIMEI(getApplicationContext()); -// imei = getDeviceId(MainActivity.this); + @Override + public void initDataWithState(@Nullable Bundle savedInstanceState) { + + } + + @Override + public void initData() { imei = obtainSimCardSerialNumber();//20210524 Pengxh修改 - -// if (getIntent() != null) { -//// Intent intent = getIntent(); -//// msgId = intent.getStringExtra("id"); -//// msgContent = intent.getStringExtra("content"); -//// Toast.makeText(MainActivity.this,msgContent,Toast.LENGTH_SHORT).show(); -//// Log.e("push",msgContent); -//// } - - //webview + Log.d(TAG, "imei === " + imei); + obtainRecordNumber();//20210813 Pengxh修改 // 获取控件对象 - webview = findViewById(R.id.WV_ID); + webview = findViewById(R.id.webView); WebView.setWebContentsDebuggingEnabled(true); - WebSettings settings = webview.getSettings(); settings.setJavaScriptEnabled(true);//设置webView属性,允许运行js脚本 settings.setDomStorageEnabled(true); @@ -101,7 +85,19 @@ settings.setAllowFileAccess(true);//可访问文件 settings.setDefaultTextEncodingName("UTF-8"); settings.setAllowUniversalAccessFromFileURLs(true); + } + @Override + public void initEvent() { + try { + Intent intent = new Intent("com.telecomyt.portal.OAUTH"); + intent.putExtra("appID", "3pb316_oauth"); + intent.putExtra("version", "v1"); + startActivityForResult(intent, 1001);//REQUEST_CODE:为自己定义的回调的代码标记。 + } catch (Exception e) { + Toast.makeText(MainActivity.this, "请先安装警务门户", Toast.LENGTH_SHORT).show(); + Log.d(TAG, "onCreate-->请先安装警务门户"); + } // 设置在当前WebView继续加载网页 webview.setWebViewClient(new WebViewClient() { @Override @@ -110,13 +106,13 @@ // 处理自定义scheme协议 if (!url.startsWith("http")) { //处理自定义scheme-->androidamap://viewMap?poiname=W00002&lat=39.9055035111111&lng=116.376759027778 - Log.e("scheme", "处理自定义scheme-->" + url); + Log.d(TAG, "处理自定义scheme-->" + url); // 如果要跳转地图 if (url.startsWith("androidamap:")) { String lat = "", lng = "", pointname = ""; //获取问号后的参数 String params = url.substring(url.indexOf('?')); - Log.i("map", params); + Log.d(TAG, "问号后的参数 === " + params); if (url.contains("?")) { String str = params.substring(1); String[] strs = str.split("&"); @@ -161,10 +157,8 @@ } public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) { - //handler.cancel(); 默认的处理方式,WebView变成空白页 //接受证书 handler.proceed(); - //handleMessage(Message msg); 其他处理 } @Override @@ -176,7 +170,6 @@ }); // 给web提供调用接口 webview.addJavascriptInterface(new WebAppInterface(), "android"); - // 加载html文件,欢迎页面 webview.loadUrl("file:///android_asset/hello.html"); } @@ -201,12 +194,12 @@ if (requestCode == 1001) { if (data != null) { String result = data.getStringExtra("result"); - Log.e(LOG_TAG, "吉安宝验证结果 result === " + result); + Log.d(TAG, "吉安宝验证结果 result === " + result); JiAnBaoCheckResult tokenResult = new Gson().fromJson(result, JiAnBaoCheckResult.class); if (tokenResult != null) { if (tokenResult.isResult()) { token = tokenResult.getSubjectDN(); - Log.e(LOG_TAG, "token === " + token); + Log.d(TAG, "token === " + token); // webview.loadUrl("file:///android_asset/index.html?token="+token); if (!TextUtils.isEmpty(token)) { HttpOauthCheckUtil.getInstance().getUserInfo(oauth_url, token, new HttpCallback() { @@ -214,19 +207,19 @@ public void onSuccess(String result) { Toast.makeText(getApplicationContext(), "认证通过,欢迎使用", Toast.LENGTH_SHORT).show(); - Log.e(LOG_TAG, "门户验证结果 === " + result); + Log.d(TAG, "门户验证结果 === " + result); userInfoResult = new Gson().fromJson(result, LoginReturn.class); yys = getYys(getApplicationContext()); String name = userInfoResult.getData().getName(); String identifyCard = userInfoResult.getData().getIdentityCard(); deviceData = new DeviceData(name, identifyCard, yys, imei); - Log.i("deviceData", deviceData.toString()); + Log.d(TAG, "deviceData === " + deviceData.toString()); webview.loadUrl("file:///android_asset/index.html"); } @Override public void onFailed(String err) { - Log.e(LOG_TAG, "错误信息 === " + err); + Log.d(TAG, "错误信息 === " + err); Toast.makeText(getApplicationContext(), err, Toast.LENGTH_SHORT).show(); } @@ -236,38 +229,24 @@ //吉安宝认证失败 Toast.makeText(getApplicationContext(), "吉安宝认证失败", Toast.LENGTH_SHORT).show(); - Log.e(LOG_TAG, "吉安宝认证失败 "); + Log.d(TAG, "吉安宝认证失败 "); } } else { Toast.makeText(getApplicationContext(), "请检查网络", Toast.LENGTH_SHORT).show(); - Log.e(LOG_TAG, "请检查网络"); + Log.d(TAG, "请检查网络"); } } } } -// if (requestCode == LOGIN_CODE && resultCode == 100) { // resultCode 固定为100 -// String result = intent.getStringExtra("result"); -// //result为json格式字符串,其中 result: true 为认证成功,false为失败;code: 错误代码 -// // TODO:解析result -// LoginReturn loginReturn = JSON.parseObject(result, LoginReturn.class); -// if(loginReturn.isResult()){//如果result是true -// this.token = loginReturn.getSubjectDN();//token -// }else{ -// -// } -// Log.i("ActivityResult", "onActivityResult: " + result); -// } -// super.onActivityResult(requestCode, resultCode, intent); } - //我们需要重写回退按钮的时间,当用户点击回退按钮: //1.webView.canGoBack()判断网页是否能后退,可以则goback() //2.如果不可以连续点击两次退出App,否则弹出提示Toast @Override public void onBackPressed() { - Log.i("webUrl", "webviewUrl" + webview.getUrl()); + Log.d(TAG, "onBackPressed === " + webview.getUrl()); if (webview.canGoBack() && !webview.getUrl().endsWith("/#/") && !webview.getUrl().endsWith("/#/login")) { webview.goBack(); } else { @@ -285,7 +264,7 @@ public String getUser() { if (deviceData != null) { String json = new Gson().toJson(deviceData); - Log.i("JSON:", json); + Log.d(TAG, "json === " + json); return json; } else { return ""; @@ -302,6 +281,12 @@ return null; } } + + //提供JS调用Android接口方法 + @JavascriptInterface + public String readRecordNumber() { + return (String) SaveKeyValues.getValue("RecordNumber", ""); + } } //获取运营商 @@ -322,38 +307,10 @@ default: } } - Log.i("yys", "yys:" + yys); -// Toast.makeText(context, "运营商:"+yys, Toast.LENGTH_SHORT).show(); + Log.d(TAG, "运营商 === " + yys); return yys; } - public String getIMEI(Context context) { - TelephonyManager telephonyManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); - @SuppressLint("MissingPermission") String imei = telephonyManager.getDeviceId(); - Log.i("imei", "yys:" + imei); - Toast.makeText(context, "imei:" + imei, Toast.LENGTH_SHORT).show(); - return imei; - } - - @SuppressLint("HardwareIds") - public static String getDeviceId(Context context) { - String deviceId = ""; - TelephonyManager tm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE); - if (null != tm) { - if (ActivityCompat.checkSelfPermission(context, Manifest.permission.READ_PHONE_STATE) != PackageManager.PERMISSION_GRANTED) { - ActivityCompat.requestPermissions((Activity) context, new String[]{Manifest.permission.READ_PHONE_STATE}, REQUEST_READ_PHONE_STATE); - } else { - if (tm.getDeviceId() != null) { - deviceId = tm.getDeviceId(); - } else { - deviceId = Settings.Secure.getString(context.getApplicationContext().getContentResolver(), Settings.Secure.ANDROID_ID); - } - } - Log.d("deviceId--->", "deviceId:" + deviceId); - } - return deviceId; - } - //获取SimSerialNumber @SuppressLint({"HardwareIds"}) public String obtainSimCardSerialNumber() { @@ -367,6 +324,7 @@ telephonyClass = Class.forName(telephony.getClass().getName()); if (ActivityCompat.checkSelfPermission(this, Manifest.permission.READ_PHONE_STATE) != PackageManager.PERMISSION_GRANTED) { ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.READ_PHONE_STATE}, REQUEST_READ_PHONE_STATE); + return ""; } //Android 10以下默认获取deviceId,部分手机获取不到deviceId不到的改为获取sim卡串码,如果依旧获取不到,返回"" String imei = telephony.getDeviceId(); @@ -386,5 +344,16 @@ } return ""; } + + //根据移动警务要求,增加备案号获取sdk + private void obtainRecordNumber() { + ApplicationInfo appInfo = getApplicationInfo(); + if (appInfo == null) { + return; + } + String number = SignRecordTools.readNumbers(appInfo.sourceDir); + Log.d(TAG, "全国注册备案号: " + number); + SaveKeyValues.putValue("RecordNumber", number); + } } diff --git a/app/src/main/java/com/casic/smartwellapp/MapInitActivity.java b/app/src/main/java/com/casic/smartwellapp/MapInitActivity.java index 9cc84e9..a4f4d04 100644 --- a/app/src/main/java/com/casic/smartwellapp/MapInitActivity.java +++ b/app/src/main/java/com/casic/smartwellapp/MapInitActivity.java @@ -1,11 +1,13 @@ package com.casic.smartwellapp; -import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.os.Environment; import android.widget.TextView; +import androidx.annotation.Nullable; + +import com.casic.smartwellapp.base.BaseActivity; import com.easymap.android.maps.v3.EzMap; import com.easymap.android.maps.v3.MapView; import com.easymap.android.maps.v3.geometry.GeoPoint; @@ -20,7 +22,7 @@ import java.io.IOException; import java.io.InputStream; -public class MapInitActivity extends Activity implements EzMap.OnStatusChangeListener { +public class MapInitActivity extends BaseActivity implements EzMap.OnStatusChangeListener { private static final String TAG = "MapInitActivity"; private MapView mapView; @@ -29,9 +31,12 @@ private String pointname; @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setContentView(R.layout.activity_map_init); + public int initLayoutView() { + return R.layout.activity_map_init; + } + + @Override + public void initDataWithState(@Nullable Bundle savedInstanceState) { Intent i = getIntent(); lng = i.getStringExtra("lng"); lat = i.getStringExtra("lat"); @@ -51,6 +56,16 @@ } @Override + public void initData() { + + } + + @Override + public void initEvent() { + + } + + @Override public void onStatusChanged(STATUS arg0) { TextView textview = findViewById(R.id.textview); textview.setText(pointname); diff --git a/app/src/main/java/com/casic/smartwellapp/PermissionActivity.java b/app/src/main/java/com/casic/smartwellapp/PermissionActivity.java index 93d32f1..8d54f74 100644 --- a/app/src/main/java/com/casic/smartwellapp/PermissionActivity.java +++ b/app/src/main/java/com/casic/smartwellapp/PermissionActivity.java @@ -1,7 +1,6 @@ package com.casic.smartwellapp; import android.content.Intent; -import android.os.Build; import android.os.Bundle; import android.util.Log; @@ -23,15 +22,10 @@ @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); - //判断是否有权限,如果版本大于5.1才需要判断(即6.0以上),其他则不需要判断。 - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { - if (EasyPermissions.hasPermissions(this, Constant.USER_PERMISSIONS)) { - startMainActivity(); - } else { - EasyPermissions.requestPermissions(this, "需要获取相关权限", Constant.PERMISSIONS_CODE, Constant.USER_PERMISSIONS); - } - } else { + if (EasyPermissions.hasPermissions(this, Constant.USER_PERMISSIONS)) { startMainActivity(); + } else { + EasyPermissions.requestPermissions(this, "需要获取相关权限", Constant.PERMISSIONS_CODE, Constant.USER_PERMISSIONS); } } diff --git a/app/build.gradle b/app/build.gradle index 0614b2f..5ec7f4d 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,15 +1,24 @@ apply plugin: 'com.android.application' android { - compileSdkVersion 29 - buildToolsVersion "29.0.3" + compileSdkVersion 30 + buildToolsVersion "30.0.3" defaultConfig { applicationId "com.casic.smartwellapp" - minSdkVersion 17 - targetSdkVersion 29 - versionCode 8 - versionName "v1.1.2" - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + //备案号sdk版本要求最低24 + minSdkVersion 24 + targetSdkVersion 30 + /** + * 使用中版本如下: + * versionCode 8 + * versionName "v1.1.2" + * + * 待测试上架版本: + * versionCode 9 + * versionName "v1.1.3" + * */ + versionCode 9 + versionName "v1.1.3" multiDexEnabled true } buildTypes { @@ -37,32 +46,50 @@ exclude 'META-INF/LGPL2.1' exclude 'META-INF/services/javax.annotation.processing.Processor' exclude 'META-INF/rxjava.properties' - exclude 'org/codehaus/jackson/impl/VERSION.txt' - exclude 'org/codehaus/jackson/map/VERSION.txt' +// exclude 'org/codehaus/jackson/impl/VERSION.txt' +// exclude 'org/codehaus/jackson/map/VERSION.txt' + } + + //导入aar包 + repositories { + flatDir { + dirs 'libs' + } } } dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') - implementation 'androidx.appcompat:appcompat:1.2.0' - implementation 'androidx.constraintlayout:constraintlayout:2.0.4' - implementation 'pub.devrel:easypermissions:1.3.0' - testImplementation 'junit:junit:4.12' - androidTestImplementation 'androidx.test:runner:1.2.0' - androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0' + //移动警务授权sdk implementation files('libs/OauthLoginJar_V1.0.jar') - implementation 'com.lbx:xTools:2.1.2' - implementation 'org.bouncycastle:bcmail-jdk15on:1.59' - implementation 'org.apache.commons:commons-lang3:3.1' - implementation 'com.alibaba:fastjson:1.2.68' - implementation files('libs/guava-17.0.jar') - implementation files('libs/androidsvg-1.2.2-beta-1.jar') + //山海易绘离线地图 implementation files('libs/EzMapServiceApiForAndroid-1.0.3.0.jar') implementation files('libs/EzRouterAPIForAndroid.v1.0.1.201206151022.jar') - implementation files('libs/jts-1.13.jar') - implementation files('libs/kxml2-2.3.0.jar') implementation files('libs/EzLicenseAPI4Android.jar') implementation files('libs/EzMapApiForAndnroid.3.1.0.2.jar') - implementation files('libs/jackson-core-lgpl-1.9.5.jar') - implementation files('libs/jackson-mapper-lgpl-1.9.5.jar') + //移动警务备案号sdk + implementation(name: 'libfriapkrecord-r1.0.1', ext: 'aar') + implementation 'androidx.appcompat:appcompat:1.2.0' + //Google申请手机相关权限官方库 + implementation group: 'pub.devrel', name: 'easypermissions', version: '3.0.0' + //Google官方Json解析 + implementation group: 'com.google.code.gson', name: 'gson', version: '2.8.6' +// implementation group: 'org.bouncycastle', name: 'bcmail-jdk15on', version: '1.68' + //公共帮助类 +// implementation group: 'org.apache.commons', name: 'commons-lang3', version: '3.1' + //阿里巴巴Json解析库 +// implementation group: 'com.alibaba', name: 'fastjson', version: '1.2.76' + //Google提供的一套工具类 +// implementation group: 'com.google.guava', name: 'guava', version: '30.1.1-jre' + //‎安卓SVG渲染库 +// implementation group: 'com.caverock', name: 'androidsvg', version: '1.4' + //JTS拓扑套件是用于建模和操纵二维线性几何形状的API +// implementation group: 'com.vividsolutions', name: 'jts', version: '1.13' + //Json解析 +// implementation group: 'org.codehaus.jackson', name: 'jackson-core-lgpl', version: '1.9.13' + //Jackson数据映射 +// implementation group: 'org.codehaus.jackson', name: 'jackson-mapper-lgpl', version: '1.9.13' + //xml解析 +// implementation group: 'net.sf.kxml', name: 'kxml2', version: '2.3.0' +// implementation 'com.lbx:xTools:2.1.2' } diff --git a/app/libs/androidsvg-1.2.2-beta-1.jar b/app/libs/androidsvg-1.2.2-beta-1.jar deleted file mode 100644 index aa69f00..0000000 --- a/app/libs/androidsvg-1.2.2-beta-1.jar +++ /dev/null Binary files differ diff --git a/app/libs/guava-17.0.jar b/app/libs/guava-17.0.jar deleted file mode 100644 index 661fc74..0000000 --- a/app/libs/guava-17.0.jar +++ /dev/null Binary files differ diff --git a/app/libs/jackson-core-lgpl-1.9.5.jar b/app/libs/jackson-core-lgpl-1.9.5.jar deleted file mode 100644 index 89dc160..0000000 --- a/app/libs/jackson-core-lgpl-1.9.5.jar +++ /dev/null Binary files differ diff --git a/app/libs/jackson-mapper-lgpl-1.9.5.jar b/app/libs/jackson-mapper-lgpl-1.9.5.jar deleted file mode 100644 index 095ffb3..0000000 --- a/app/libs/jackson-mapper-lgpl-1.9.5.jar +++ /dev/null Binary files differ diff --git a/app/libs/jts-1.13.jar b/app/libs/jts-1.13.jar deleted file mode 100644 index bbaa20b..0000000 --- a/app/libs/jts-1.13.jar +++ /dev/null Binary files differ diff --git a/app/libs/kxml2-2.3.0.jar b/app/libs/kxml2-2.3.0.jar deleted file mode 100644 index 6470952..0000000 --- a/app/libs/kxml2-2.3.0.jar +++ /dev/null Binary files differ diff --git a/app/libs/libfriapkrecord-r1.0.1.aar b/app/libs/libfriapkrecord-r1.0.1.aar new file mode 100644 index 0000000..ad69876 --- /dev/null +++ b/app/libs/libfriapkrecord-r1.0.1.aar Binary files differ diff --git a/app/src/androidTest/java/com/casic/smartwellapp/ExampleInstrumentedTest.java b/app/src/androidTest/java/com/casic/smartwellapp/ExampleInstrumentedTest.java deleted file mode 100644 index 3013492..0000000 --- a/app/src/androidTest/java/com/casic/smartwellapp/ExampleInstrumentedTest.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.casic.smartwellapp; - -import android.content.Context; - -import androidx.test.InstrumentationRegistry; -import androidx.test.runner.AndroidJUnit4; - -import org.junit.Test; -import org.junit.runner.RunWith; - -import static org.junit.Assert.*; - -/** - * Instrumented test, which will execute on an Android device. - * - * @see Testing documentation - */ -@RunWith(AndroidJUnit4.class) -public class ExampleInstrumentedTest { - @Test - public void useAppContext() { - // Context of the app under test. - Context appContext = InstrumentationRegistry.getTargetContext(); - - assertEquals("com.casic.smartwellapp", appContext.getPackageName()); - } -} diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 4eeda90..bc63fec 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -3,6 +3,9 @@ xmlns:tools="http://schemas.android.com/tools" package="com.casic.smartwellapp"> + @@ -20,22 +23,23 @@ - - - + + + diff --git a/app/src/main/assets/error.html b/app/src/main/assets/error.html index dcd365f..5abea9c 100644 --- a/app/src/main/assets/error.html +++ b/app/src/main/assets/error.html @@ -1,82 +1,90 @@ - - - - 404 - - - -
- -
-
- -
-
- 请检查网络后重试 -
- - - -
-
- - - + .text-area { + + height: 75px; + } + + .tips { + font-size: 25px; + line-height: 35px; + color: white; + text-align: center; + } + + .tips img { + width: 70%; + } + + .btn { + margin-top: 5%; + text-align: center; + } + + .btn button { + font-size: 30px; + padding: 10px 20px; + border-radius: 20px; + background-color: #ffee00; + color: #ff7700; + margin: 0 auto; + } + + .btn button:hover { + background-color: #ffbb00; + color: #ffff00; + } + + + +
+ +
+
+ +
+
+ 请检查网络后重试 +
+ + + +
+
+ + + diff --git a/app/src/main/assets/hello.html b/app/src/main/assets/hello.html index 5c45033..5fde805 100644 --- a/app/src/main/assets/hello.html +++ b/app/src/main/assets/hello.html @@ -1,64 +1,73 @@ - - - - 404 - - - -
-
- - + .airplane { + width: 50%; + margin: 20% 25% 10% 25%; + text-align: center; + } + + .text-area { + + height: 75px; + } + + .tips { + font-size: 25px; + line-height: 35px; + color: white; + text-align: center; + } + + .tips img { + width: 70%; + } + + .btn { + margin-top: 5%; + text-align: center; + } + + .btn button { + font-size: 30px; + padding: 10px 20px; + border-radius: 20px; + background-color: #ffee00; + color: #ff7700; + margin: 0 auto; + } + + .btn button:hover { + background-color: #ffbb00; + color: #ffff00; + } + + + +
+
+ + diff --git a/app/src/main/assets/index.html b/app/src/main/assets/index.html index d5b666a..1e55e53 100644 --- a/app/src/main/assets/index.html +++ b/app/src/main/assets/index.html @@ -1 +1,18 @@ -智能闸井
\ No newline at end of file + + + + + + + + 智能闸井 + + + +
+ + + + + diff --git a/app/src/main/assets/map.html b/app/src/main/assets/map.html index 6665800..d9f8d04 100644 --- a/app/src/main/assets/map.html +++ b/app/src/main/assets/map.html @@ -1,79 +1,79 @@ - - - - - - easyMap JavaScript API Example: simple + + + + + + easyMap JavaScript API Example: simple - - + + - - - -
- - - + var pIcon = new Icon(); // 构造一个图标类 + pIcon.image = "static/images/location.png"; + pIcon.height = 16; + pIcon.width = 16; + var strMsg = theRequest.pointname; + var marker = new Marker(centerP, pIcon); // 构造一个标记叠加对象 + uEzMap.addOverlay(marker); // 将标记叠加对象添加到地图中 + // 构造鹰眼对象 + var ov = new OverView(); + // 设置鹰眼的宽度,单位为像素px + ov.width = 200; + // 设置鹰眼的高度 + ov.height = 200; + // 添加鹰眼对象到地图对象中 + uEzMap.addOverView(ov); + } + + + diff --git a/app/src/main/java/com/casic/smartwellapp/Entity/Constant.java b/app/src/main/java/com/casic/smartwellapp/Entity/Constant.java index 66d61e1..99c2ff3 100644 --- a/app/src/main/java/com/casic/smartwellapp/Entity/Constant.java +++ b/app/src/main/java/com/casic/smartwellapp/Entity/Constant.java @@ -1,11 +1,9 @@ package com.casic.smartwellapp.Entity; import android.Manifest; -import android.os.Environment; public class Constant { - public static final String LICENSE_PATH = Environment.getExternalStorageDirectory() + "/PGIS/license/EzServiceClient4Android.lic"; - // public static final String LICENSE_PATH = "file:///android_asset/EzServiceClient4Android.lic"; public static final int PERMISSIONS_CODE = 11; - public static final String[] USER_PERMISSIONS = {Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE}; + public static final String[] USER_PERMISSIONS = {Manifest.permission.READ_EXTERNAL_STORAGE, + Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.READ_PHONE_STATE}; } diff --git a/app/src/main/java/com/casic/smartwellapp/Entity/Data.java b/app/src/main/java/com/casic/smartwellapp/Entity/Data.java index 317acb9..bd79a68 100644 --- a/app/src/main/java/com/casic/smartwellapp/Entity/Data.java +++ b/app/src/main/java/com/casic/smartwellapp/Entity/Data.java @@ -1,8 +1,8 @@ package com.casic.smartwellapp.Entity; public class Data { - String identityCard; - String name; + private String identityCard; + private String name; public String getIdentityCard() { return identityCard; diff --git a/app/src/main/java/com/casic/smartwellapp/Entity/DeviceData.java b/app/src/main/java/com/casic/smartwellapp/Entity/DeviceData.java index a17c74a..1f064c4 100644 --- a/app/src/main/java/com/casic/smartwellapp/Entity/DeviceData.java +++ b/app/src/main/java/com/casic/smartwellapp/Entity/DeviceData.java @@ -1,12 +1,12 @@ package com.casic.smartwellapp.Entity; public class DeviceData { - String name; - String card; - String yys; - String imei = ""; + private String name; + private String card; + private String yys; + private String imei; - public DeviceData(String name, String card, String yys,String imei) { + public DeviceData(String name, String card, String yys, String imei) { this.name = name; this.card = card; this.yys = yys; diff --git a/app/src/main/java/com/casic/smartwellapp/Entity/LoginReturn.java b/app/src/main/java/com/casic/smartwellapp/Entity/LoginReturn.java index 7ed1948..4f3d7c9 100644 --- a/app/src/main/java/com/casic/smartwellapp/Entity/LoginReturn.java +++ b/app/src/main/java/com/casic/smartwellapp/Entity/LoginReturn.java @@ -2,9 +2,9 @@ public class LoginReturn { - String code; - String msg; - Data data; + private String code; + private String msg; + private Data data; public String getCode() { return code; diff --git a/app/src/main/java/com/casic/smartwellapp/MainActivity.java b/app/src/main/java/com/casic/smartwellapp/MainActivity.java index b88eb70..98a6315 100644 --- a/app/src/main/java/com/casic/smartwellapp/MainActivity.java +++ b/app/src/main/java/com/casic/smartwellapp/MainActivity.java @@ -2,9 +2,9 @@ import android.Manifest; import android.annotation.SuppressLint; -import android.app.Activity; import android.content.Context; import android.content.Intent; +import android.content.pm.ApplicationInfo; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.net.Uri; @@ -23,12 +23,14 @@ import android.webkit.WebViewClient; import android.widget.Toast; -import androidx.annotation.RequiresApi; -import androidx.appcompat.app.AppCompatActivity; +import androidx.annotation.Nullable; import androidx.core.app.ActivityCompat; import com.casic.smartwellapp.Entity.DeviceData; import com.casic.smartwellapp.Entity.LoginReturn; +import com.casic.smartwellapp.base.BaseActivity; +import com.casic.smartwellapp.uitil.SaveKeyValues; +import com.fri.libfriapkrecord.read.SignRecordTools; import com.google.gson.Gson; import com.telecomyt.oauthlogin.bean.JiAnBaoCheckResult; import com.telecomyt.oauthlogin.http.HttpCallback; @@ -37,10 +39,13 @@ import java.lang.reflect.Method; import java.util.List; -import static com.telecomyt.oauthlogin.config.Config.LOG_TAG; +public class MainActivity extends BaseActivity { -public class MainActivity extends AppCompatActivity { + private static final String TAG = "MainActivity"; + private static final String oauth_url = "http://menhu.telecomyt.com.cn:8080/"; //单点登录验证地址 + private static final int LOGIN_CODE = 1001; + private static final int REQUEST_READ_PHONE_STATE = 1; private WebView webview; private String token;// token @@ -49,49 +54,28 @@ private String yys; //运营商 private LoginReturn userInfoResult = null; //单点登录返回的用户信息 private DeviceData deviceData = null; //给用户返回的数据 - - private static final String oauth_url = "http://menhu.telecomyt.com.cn:8080/"; //单点登录验证地址 - private long exitTime = 0; //点击退出时间 - - private static final int LOGIN_CODE = 1001; - public static final int REQUEST_READ_PHONE_STATE = 1; - private String msgId; //推送消息id private String msgContent; //推送消息内容 - @RequiresApi(api = Build.VERSION_CODES.KITKAT) @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setContentView(R.layout.activity_main); - try { - Intent intent = new Intent("com.telecomyt.portal.OAUTH"); - intent.putExtra("appID", "3pb316_oauth"); - intent.putExtra("version", "v1"); - startActivityForResult(intent, 1001);//REQUEST_CODE:为自己定义的回调的代码标记。 - } catch (Exception e) { - Toast.makeText(MainActivity.this, "请先安装警务门户", Toast.LENGTH_SHORT).show(); - Log.e(LOG_TAG, "请先安装警务门户"); - } + public int initLayoutView() { + return R.layout.activity_main; + } -// imei = getIMEI(getApplicationContext()); -// imei = getDeviceId(MainActivity.this); + @Override + public void initDataWithState(@Nullable Bundle savedInstanceState) { + + } + + @Override + public void initData() { imei = obtainSimCardSerialNumber();//20210524 Pengxh修改 - -// if (getIntent() != null) { -//// Intent intent = getIntent(); -//// msgId = intent.getStringExtra("id"); -//// msgContent = intent.getStringExtra("content"); -//// Toast.makeText(MainActivity.this,msgContent,Toast.LENGTH_SHORT).show(); -//// Log.e("push",msgContent); -//// } - - //webview + Log.d(TAG, "imei === " + imei); + obtainRecordNumber();//20210813 Pengxh修改 // 获取控件对象 - webview = findViewById(R.id.WV_ID); + webview = findViewById(R.id.webView); WebView.setWebContentsDebuggingEnabled(true); - WebSettings settings = webview.getSettings(); settings.setJavaScriptEnabled(true);//设置webView属性,允许运行js脚本 settings.setDomStorageEnabled(true); @@ -101,7 +85,19 @@ settings.setAllowFileAccess(true);//可访问文件 settings.setDefaultTextEncodingName("UTF-8"); settings.setAllowUniversalAccessFromFileURLs(true); + } + @Override + public void initEvent() { + try { + Intent intent = new Intent("com.telecomyt.portal.OAUTH"); + intent.putExtra("appID", "3pb316_oauth"); + intent.putExtra("version", "v1"); + startActivityForResult(intent, 1001);//REQUEST_CODE:为自己定义的回调的代码标记。 + } catch (Exception e) { + Toast.makeText(MainActivity.this, "请先安装警务门户", Toast.LENGTH_SHORT).show(); + Log.d(TAG, "onCreate-->请先安装警务门户"); + } // 设置在当前WebView继续加载网页 webview.setWebViewClient(new WebViewClient() { @Override @@ -110,13 +106,13 @@ // 处理自定义scheme协议 if (!url.startsWith("http")) { //处理自定义scheme-->androidamap://viewMap?poiname=W00002&lat=39.9055035111111&lng=116.376759027778 - Log.e("scheme", "处理自定义scheme-->" + url); + Log.d(TAG, "处理自定义scheme-->" + url); // 如果要跳转地图 if (url.startsWith("androidamap:")) { String lat = "", lng = "", pointname = ""; //获取问号后的参数 String params = url.substring(url.indexOf('?')); - Log.i("map", params); + Log.d(TAG, "问号后的参数 === " + params); if (url.contains("?")) { String str = params.substring(1); String[] strs = str.split("&"); @@ -161,10 +157,8 @@ } public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) { - //handler.cancel(); 默认的处理方式,WebView变成空白页 //接受证书 handler.proceed(); - //handleMessage(Message msg); 其他处理 } @Override @@ -176,7 +170,6 @@ }); // 给web提供调用接口 webview.addJavascriptInterface(new WebAppInterface(), "android"); - // 加载html文件,欢迎页面 webview.loadUrl("file:///android_asset/hello.html"); } @@ -201,12 +194,12 @@ if (requestCode == 1001) { if (data != null) { String result = data.getStringExtra("result"); - Log.e(LOG_TAG, "吉安宝验证结果 result === " + result); + Log.d(TAG, "吉安宝验证结果 result === " + result); JiAnBaoCheckResult tokenResult = new Gson().fromJson(result, JiAnBaoCheckResult.class); if (tokenResult != null) { if (tokenResult.isResult()) { token = tokenResult.getSubjectDN(); - Log.e(LOG_TAG, "token === " + token); + Log.d(TAG, "token === " + token); // webview.loadUrl("file:///android_asset/index.html?token="+token); if (!TextUtils.isEmpty(token)) { HttpOauthCheckUtil.getInstance().getUserInfo(oauth_url, token, new HttpCallback() { @@ -214,19 +207,19 @@ public void onSuccess(String result) { Toast.makeText(getApplicationContext(), "认证通过,欢迎使用", Toast.LENGTH_SHORT).show(); - Log.e(LOG_TAG, "门户验证结果 === " + result); + Log.d(TAG, "门户验证结果 === " + result); userInfoResult = new Gson().fromJson(result, LoginReturn.class); yys = getYys(getApplicationContext()); String name = userInfoResult.getData().getName(); String identifyCard = userInfoResult.getData().getIdentityCard(); deviceData = new DeviceData(name, identifyCard, yys, imei); - Log.i("deviceData", deviceData.toString()); + Log.d(TAG, "deviceData === " + deviceData.toString()); webview.loadUrl("file:///android_asset/index.html"); } @Override public void onFailed(String err) { - Log.e(LOG_TAG, "错误信息 === " + err); + Log.d(TAG, "错误信息 === " + err); Toast.makeText(getApplicationContext(), err, Toast.LENGTH_SHORT).show(); } @@ -236,38 +229,24 @@ //吉安宝认证失败 Toast.makeText(getApplicationContext(), "吉安宝认证失败", Toast.LENGTH_SHORT).show(); - Log.e(LOG_TAG, "吉安宝认证失败 "); + Log.d(TAG, "吉安宝认证失败 "); } } else { Toast.makeText(getApplicationContext(), "请检查网络", Toast.LENGTH_SHORT).show(); - Log.e(LOG_TAG, "请检查网络"); + Log.d(TAG, "请检查网络"); } } } } -// if (requestCode == LOGIN_CODE && resultCode == 100) { // resultCode 固定为100 -// String result = intent.getStringExtra("result"); -// //result为json格式字符串,其中 result: true 为认证成功,false为失败;code: 错误代码 -// // TODO:解析result -// LoginReturn loginReturn = JSON.parseObject(result, LoginReturn.class); -// if(loginReturn.isResult()){//如果result是true -// this.token = loginReturn.getSubjectDN();//token -// }else{ -// -// } -// Log.i("ActivityResult", "onActivityResult: " + result); -// } -// super.onActivityResult(requestCode, resultCode, intent); } - //我们需要重写回退按钮的时间,当用户点击回退按钮: //1.webView.canGoBack()判断网页是否能后退,可以则goback() //2.如果不可以连续点击两次退出App,否则弹出提示Toast @Override public void onBackPressed() { - Log.i("webUrl", "webviewUrl" + webview.getUrl()); + Log.d(TAG, "onBackPressed === " + webview.getUrl()); if (webview.canGoBack() && !webview.getUrl().endsWith("/#/") && !webview.getUrl().endsWith("/#/login")) { webview.goBack(); } else { @@ -285,7 +264,7 @@ public String getUser() { if (deviceData != null) { String json = new Gson().toJson(deviceData); - Log.i("JSON:", json); + Log.d(TAG, "json === " + json); return json; } else { return ""; @@ -302,6 +281,12 @@ return null; } } + + //提供JS调用Android接口方法 + @JavascriptInterface + public String readRecordNumber() { + return (String) SaveKeyValues.getValue("RecordNumber", ""); + } } //获取运营商 @@ -322,38 +307,10 @@ default: } } - Log.i("yys", "yys:" + yys); -// Toast.makeText(context, "运营商:"+yys, Toast.LENGTH_SHORT).show(); + Log.d(TAG, "运营商 === " + yys); return yys; } - public String getIMEI(Context context) { - TelephonyManager telephonyManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); - @SuppressLint("MissingPermission") String imei = telephonyManager.getDeviceId(); - Log.i("imei", "yys:" + imei); - Toast.makeText(context, "imei:" + imei, Toast.LENGTH_SHORT).show(); - return imei; - } - - @SuppressLint("HardwareIds") - public static String getDeviceId(Context context) { - String deviceId = ""; - TelephonyManager tm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE); - if (null != tm) { - if (ActivityCompat.checkSelfPermission(context, Manifest.permission.READ_PHONE_STATE) != PackageManager.PERMISSION_GRANTED) { - ActivityCompat.requestPermissions((Activity) context, new String[]{Manifest.permission.READ_PHONE_STATE}, REQUEST_READ_PHONE_STATE); - } else { - if (tm.getDeviceId() != null) { - deviceId = tm.getDeviceId(); - } else { - deviceId = Settings.Secure.getString(context.getApplicationContext().getContentResolver(), Settings.Secure.ANDROID_ID); - } - } - Log.d("deviceId--->", "deviceId:" + deviceId); - } - return deviceId; - } - //获取SimSerialNumber @SuppressLint({"HardwareIds"}) public String obtainSimCardSerialNumber() { @@ -367,6 +324,7 @@ telephonyClass = Class.forName(telephony.getClass().getName()); if (ActivityCompat.checkSelfPermission(this, Manifest.permission.READ_PHONE_STATE) != PackageManager.PERMISSION_GRANTED) { ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.READ_PHONE_STATE}, REQUEST_READ_PHONE_STATE); + return ""; } //Android 10以下默认获取deviceId,部分手机获取不到deviceId不到的改为获取sim卡串码,如果依旧获取不到,返回"" String imei = telephony.getDeviceId(); @@ -386,5 +344,16 @@ } return ""; } + + //根据移动警务要求,增加备案号获取sdk + private void obtainRecordNumber() { + ApplicationInfo appInfo = getApplicationInfo(); + if (appInfo == null) { + return; + } + String number = SignRecordTools.readNumbers(appInfo.sourceDir); + Log.d(TAG, "全国注册备案号: " + number); + SaveKeyValues.putValue("RecordNumber", number); + } } diff --git a/app/src/main/java/com/casic/smartwellapp/MapInitActivity.java b/app/src/main/java/com/casic/smartwellapp/MapInitActivity.java index 9cc84e9..a4f4d04 100644 --- a/app/src/main/java/com/casic/smartwellapp/MapInitActivity.java +++ b/app/src/main/java/com/casic/smartwellapp/MapInitActivity.java @@ -1,11 +1,13 @@ package com.casic.smartwellapp; -import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.os.Environment; import android.widget.TextView; +import androidx.annotation.Nullable; + +import com.casic.smartwellapp.base.BaseActivity; import com.easymap.android.maps.v3.EzMap; import com.easymap.android.maps.v3.MapView; import com.easymap.android.maps.v3.geometry.GeoPoint; @@ -20,7 +22,7 @@ import java.io.IOException; import java.io.InputStream; -public class MapInitActivity extends Activity implements EzMap.OnStatusChangeListener { +public class MapInitActivity extends BaseActivity implements EzMap.OnStatusChangeListener { private static final String TAG = "MapInitActivity"; private MapView mapView; @@ -29,9 +31,12 @@ private String pointname; @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setContentView(R.layout.activity_map_init); + public int initLayoutView() { + return R.layout.activity_map_init; + } + + @Override + public void initDataWithState(@Nullable Bundle savedInstanceState) { Intent i = getIntent(); lng = i.getStringExtra("lng"); lat = i.getStringExtra("lat"); @@ -51,6 +56,16 @@ } @Override + public void initData() { + + } + + @Override + public void initEvent() { + + } + + @Override public void onStatusChanged(STATUS arg0) { TextView textview = findViewById(R.id.textview); textview.setText(pointname); diff --git a/app/src/main/java/com/casic/smartwellapp/PermissionActivity.java b/app/src/main/java/com/casic/smartwellapp/PermissionActivity.java index 93d32f1..8d54f74 100644 --- a/app/src/main/java/com/casic/smartwellapp/PermissionActivity.java +++ b/app/src/main/java/com/casic/smartwellapp/PermissionActivity.java @@ -1,7 +1,6 @@ package com.casic.smartwellapp; import android.content.Intent; -import android.os.Build; import android.os.Bundle; import android.util.Log; @@ -23,15 +22,10 @@ @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); - //判断是否有权限,如果版本大于5.1才需要判断(即6.0以上),其他则不需要判断。 - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { - if (EasyPermissions.hasPermissions(this, Constant.USER_PERMISSIONS)) { - startMainActivity(); - } else { - EasyPermissions.requestPermissions(this, "需要获取相关权限", Constant.PERMISSIONS_CODE, Constant.USER_PERMISSIONS); - } - } else { + if (EasyPermissions.hasPermissions(this, Constant.USER_PERMISSIONS)) { startMainActivity(); + } else { + EasyPermissions.requestPermissions(this, "需要获取相关权限", Constant.PERMISSIONS_CODE, Constant.USER_PERMISSIONS); } } diff --git a/app/src/main/java/com/casic/smartwellapp/base/BaseActivity.java b/app/src/main/java/com/casic/smartwellapp/base/BaseActivity.java new file mode 100644 index 0000000..1cb0e54 --- /dev/null +++ b/app/src/main/java/com/casic/smartwellapp/base/BaseActivity.java @@ -0,0 +1,38 @@ +package com.casic.smartwellapp.base; + +import android.os.Bundle; + +import androidx.annotation.Nullable; +import androidx.appcompat.app.AppCompatActivity; + +public abstract class BaseActivity extends AppCompatActivity { + + @Override + protected void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(initLayoutView()); + initDataWithState(savedInstanceState); + initData(); + initEvent(); + } + + /** + * 初始化xml布局 + */ + public abstract int initLayoutView(); + + /** + * 初始化默认数据 + */ + public abstract void initData(); + + /** + * 初始化默认数据 + */ + public abstract void initDataWithState(@Nullable Bundle savedInstanceState); + + /** + * 初始化业务逻辑 + */ + public abstract void initEvent(); +} diff --git a/app/build.gradle b/app/build.gradle index 0614b2f..5ec7f4d 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,15 +1,24 @@ apply plugin: 'com.android.application' android { - compileSdkVersion 29 - buildToolsVersion "29.0.3" + compileSdkVersion 30 + buildToolsVersion "30.0.3" defaultConfig { applicationId "com.casic.smartwellapp" - minSdkVersion 17 - targetSdkVersion 29 - versionCode 8 - versionName "v1.1.2" - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + //备案号sdk版本要求最低24 + minSdkVersion 24 + targetSdkVersion 30 + /** + * 使用中版本如下: + * versionCode 8 + * versionName "v1.1.2" + * + * 待测试上架版本: + * versionCode 9 + * versionName "v1.1.3" + * */ + versionCode 9 + versionName "v1.1.3" multiDexEnabled true } buildTypes { @@ -37,32 +46,50 @@ exclude 'META-INF/LGPL2.1' exclude 'META-INF/services/javax.annotation.processing.Processor' exclude 'META-INF/rxjava.properties' - exclude 'org/codehaus/jackson/impl/VERSION.txt' - exclude 'org/codehaus/jackson/map/VERSION.txt' +// exclude 'org/codehaus/jackson/impl/VERSION.txt' +// exclude 'org/codehaus/jackson/map/VERSION.txt' + } + + //导入aar包 + repositories { + flatDir { + dirs 'libs' + } } } dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') - implementation 'androidx.appcompat:appcompat:1.2.0' - implementation 'androidx.constraintlayout:constraintlayout:2.0.4' - implementation 'pub.devrel:easypermissions:1.3.0' - testImplementation 'junit:junit:4.12' - androidTestImplementation 'androidx.test:runner:1.2.0' - androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0' + //移动警务授权sdk implementation files('libs/OauthLoginJar_V1.0.jar') - implementation 'com.lbx:xTools:2.1.2' - implementation 'org.bouncycastle:bcmail-jdk15on:1.59' - implementation 'org.apache.commons:commons-lang3:3.1' - implementation 'com.alibaba:fastjson:1.2.68' - implementation files('libs/guava-17.0.jar') - implementation files('libs/androidsvg-1.2.2-beta-1.jar') + //山海易绘离线地图 implementation files('libs/EzMapServiceApiForAndroid-1.0.3.0.jar') implementation files('libs/EzRouterAPIForAndroid.v1.0.1.201206151022.jar') - implementation files('libs/jts-1.13.jar') - implementation files('libs/kxml2-2.3.0.jar') implementation files('libs/EzLicenseAPI4Android.jar') implementation files('libs/EzMapApiForAndnroid.3.1.0.2.jar') - implementation files('libs/jackson-core-lgpl-1.9.5.jar') - implementation files('libs/jackson-mapper-lgpl-1.9.5.jar') + //移动警务备案号sdk + implementation(name: 'libfriapkrecord-r1.0.1', ext: 'aar') + implementation 'androidx.appcompat:appcompat:1.2.0' + //Google申请手机相关权限官方库 + implementation group: 'pub.devrel', name: 'easypermissions', version: '3.0.0' + //Google官方Json解析 + implementation group: 'com.google.code.gson', name: 'gson', version: '2.8.6' +// implementation group: 'org.bouncycastle', name: 'bcmail-jdk15on', version: '1.68' + //公共帮助类 +// implementation group: 'org.apache.commons', name: 'commons-lang3', version: '3.1' + //阿里巴巴Json解析库 +// implementation group: 'com.alibaba', name: 'fastjson', version: '1.2.76' + //Google提供的一套工具类 +// implementation group: 'com.google.guava', name: 'guava', version: '30.1.1-jre' + //‎安卓SVG渲染库 +// implementation group: 'com.caverock', name: 'androidsvg', version: '1.4' + //JTS拓扑套件是用于建模和操纵二维线性几何形状的API +// implementation group: 'com.vividsolutions', name: 'jts', version: '1.13' + //Json解析 +// implementation group: 'org.codehaus.jackson', name: 'jackson-core-lgpl', version: '1.9.13' + //Jackson数据映射 +// implementation group: 'org.codehaus.jackson', name: 'jackson-mapper-lgpl', version: '1.9.13' + //xml解析 +// implementation group: 'net.sf.kxml', name: 'kxml2', version: '2.3.0' +// implementation 'com.lbx:xTools:2.1.2' } diff --git a/app/libs/androidsvg-1.2.2-beta-1.jar b/app/libs/androidsvg-1.2.2-beta-1.jar deleted file mode 100644 index aa69f00..0000000 --- a/app/libs/androidsvg-1.2.2-beta-1.jar +++ /dev/null Binary files differ diff --git a/app/libs/guava-17.0.jar b/app/libs/guava-17.0.jar deleted file mode 100644 index 661fc74..0000000 --- a/app/libs/guava-17.0.jar +++ /dev/null Binary files differ diff --git a/app/libs/jackson-core-lgpl-1.9.5.jar b/app/libs/jackson-core-lgpl-1.9.5.jar deleted file mode 100644 index 89dc160..0000000 --- a/app/libs/jackson-core-lgpl-1.9.5.jar +++ /dev/null Binary files differ diff --git a/app/libs/jackson-mapper-lgpl-1.9.5.jar b/app/libs/jackson-mapper-lgpl-1.9.5.jar deleted file mode 100644 index 095ffb3..0000000 --- a/app/libs/jackson-mapper-lgpl-1.9.5.jar +++ /dev/null Binary files differ diff --git a/app/libs/jts-1.13.jar b/app/libs/jts-1.13.jar deleted file mode 100644 index bbaa20b..0000000 --- a/app/libs/jts-1.13.jar +++ /dev/null Binary files differ diff --git a/app/libs/kxml2-2.3.0.jar b/app/libs/kxml2-2.3.0.jar deleted file mode 100644 index 6470952..0000000 --- a/app/libs/kxml2-2.3.0.jar +++ /dev/null Binary files differ diff --git a/app/libs/libfriapkrecord-r1.0.1.aar b/app/libs/libfriapkrecord-r1.0.1.aar new file mode 100644 index 0000000..ad69876 --- /dev/null +++ b/app/libs/libfriapkrecord-r1.0.1.aar Binary files differ diff --git a/app/src/androidTest/java/com/casic/smartwellapp/ExampleInstrumentedTest.java b/app/src/androidTest/java/com/casic/smartwellapp/ExampleInstrumentedTest.java deleted file mode 100644 index 3013492..0000000 --- a/app/src/androidTest/java/com/casic/smartwellapp/ExampleInstrumentedTest.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.casic.smartwellapp; - -import android.content.Context; - -import androidx.test.InstrumentationRegistry; -import androidx.test.runner.AndroidJUnit4; - -import org.junit.Test; -import org.junit.runner.RunWith; - -import static org.junit.Assert.*; - -/** - * Instrumented test, which will execute on an Android device. - * - * @see Testing documentation - */ -@RunWith(AndroidJUnit4.class) -public class ExampleInstrumentedTest { - @Test - public void useAppContext() { - // Context of the app under test. - Context appContext = InstrumentationRegistry.getTargetContext(); - - assertEquals("com.casic.smartwellapp", appContext.getPackageName()); - } -} diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 4eeda90..bc63fec 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -3,6 +3,9 @@ xmlns:tools="http://schemas.android.com/tools" package="com.casic.smartwellapp"> + @@ -20,22 +23,23 @@ - - - + + + diff --git a/app/src/main/assets/error.html b/app/src/main/assets/error.html index dcd365f..5abea9c 100644 --- a/app/src/main/assets/error.html +++ b/app/src/main/assets/error.html @@ -1,82 +1,90 @@ - - - - 404 - - - -
- -
-
- -
-
- 请检查网络后重试 -
- - - -
-
- - - + .text-area { + + height: 75px; + } + + .tips { + font-size: 25px; + line-height: 35px; + color: white; + text-align: center; + } + + .tips img { + width: 70%; + } + + .btn { + margin-top: 5%; + text-align: center; + } + + .btn button { + font-size: 30px; + padding: 10px 20px; + border-radius: 20px; + background-color: #ffee00; + color: #ff7700; + margin: 0 auto; + } + + .btn button:hover { + background-color: #ffbb00; + color: #ffff00; + } + + + +
+ +
+
+ +
+
+ 请检查网络后重试 +
+ + + +
+
+ + + diff --git a/app/src/main/assets/hello.html b/app/src/main/assets/hello.html index 5c45033..5fde805 100644 --- a/app/src/main/assets/hello.html +++ b/app/src/main/assets/hello.html @@ -1,64 +1,73 @@ - - - - 404 - - - -
-
- - + .airplane { + width: 50%; + margin: 20% 25% 10% 25%; + text-align: center; + } + + .text-area { + + height: 75px; + } + + .tips { + font-size: 25px; + line-height: 35px; + color: white; + text-align: center; + } + + .tips img { + width: 70%; + } + + .btn { + margin-top: 5%; + text-align: center; + } + + .btn button { + font-size: 30px; + padding: 10px 20px; + border-radius: 20px; + background-color: #ffee00; + color: #ff7700; + margin: 0 auto; + } + + .btn button:hover { + background-color: #ffbb00; + color: #ffff00; + } + + + +
+
+ + diff --git a/app/src/main/assets/index.html b/app/src/main/assets/index.html index d5b666a..1e55e53 100644 --- a/app/src/main/assets/index.html +++ b/app/src/main/assets/index.html @@ -1 +1,18 @@ -智能闸井
\ No newline at end of file + + + + + + + + 智能闸井 + + + +
+ + + + + diff --git a/app/src/main/assets/map.html b/app/src/main/assets/map.html index 6665800..d9f8d04 100644 --- a/app/src/main/assets/map.html +++ b/app/src/main/assets/map.html @@ -1,79 +1,79 @@ - - - - - - easyMap JavaScript API Example: simple + + + + + + easyMap JavaScript API Example: simple - - + + - - - -
- - - + var pIcon = new Icon(); // 构造一个图标类 + pIcon.image = "static/images/location.png"; + pIcon.height = 16; + pIcon.width = 16; + var strMsg = theRequest.pointname; + var marker = new Marker(centerP, pIcon); // 构造一个标记叠加对象 + uEzMap.addOverlay(marker); // 将标记叠加对象添加到地图中 + // 构造鹰眼对象 + var ov = new OverView(); + // 设置鹰眼的宽度,单位为像素px + ov.width = 200; + // 设置鹰眼的高度 + ov.height = 200; + // 添加鹰眼对象到地图对象中 + uEzMap.addOverView(ov); + } + + + diff --git a/app/src/main/java/com/casic/smartwellapp/Entity/Constant.java b/app/src/main/java/com/casic/smartwellapp/Entity/Constant.java index 66d61e1..99c2ff3 100644 --- a/app/src/main/java/com/casic/smartwellapp/Entity/Constant.java +++ b/app/src/main/java/com/casic/smartwellapp/Entity/Constant.java @@ -1,11 +1,9 @@ package com.casic.smartwellapp.Entity; import android.Manifest; -import android.os.Environment; public class Constant { - public static final String LICENSE_PATH = Environment.getExternalStorageDirectory() + "/PGIS/license/EzServiceClient4Android.lic"; - // public static final String LICENSE_PATH = "file:///android_asset/EzServiceClient4Android.lic"; public static final int PERMISSIONS_CODE = 11; - public static final String[] USER_PERMISSIONS = {Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE}; + public static final String[] USER_PERMISSIONS = {Manifest.permission.READ_EXTERNAL_STORAGE, + Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.READ_PHONE_STATE}; } diff --git a/app/src/main/java/com/casic/smartwellapp/Entity/Data.java b/app/src/main/java/com/casic/smartwellapp/Entity/Data.java index 317acb9..bd79a68 100644 --- a/app/src/main/java/com/casic/smartwellapp/Entity/Data.java +++ b/app/src/main/java/com/casic/smartwellapp/Entity/Data.java @@ -1,8 +1,8 @@ package com.casic.smartwellapp.Entity; public class Data { - String identityCard; - String name; + private String identityCard; + private String name; public String getIdentityCard() { return identityCard; diff --git a/app/src/main/java/com/casic/smartwellapp/Entity/DeviceData.java b/app/src/main/java/com/casic/smartwellapp/Entity/DeviceData.java index a17c74a..1f064c4 100644 --- a/app/src/main/java/com/casic/smartwellapp/Entity/DeviceData.java +++ b/app/src/main/java/com/casic/smartwellapp/Entity/DeviceData.java @@ -1,12 +1,12 @@ package com.casic.smartwellapp.Entity; public class DeviceData { - String name; - String card; - String yys; - String imei = ""; + private String name; + private String card; + private String yys; + private String imei; - public DeviceData(String name, String card, String yys,String imei) { + public DeviceData(String name, String card, String yys, String imei) { this.name = name; this.card = card; this.yys = yys; diff --git a/app/src/main/java/com/casic/smartwellapp/Entity/LoginReturn.java b/app/src/main/java/com/casic/smartwellapp/Entity/LoginReturn.java index 7ed1948..4f3d7c9 100644 --- a/app/src/main/java/com/casic/smartwellapp/Entity/LoginReturn.java +++ b/app/src/main/java/com/casic/smartwellapp/Entity/LoginReturn.java @@ -2,9 +2,9 @@ public class LoginReturn { - String code; - String msg; - Data data; + private String code; + private String msg; + private Data data; public String getCode() { return code; diff --git a/app/src/main/java/com/casic/smartwellapp/MainActivity.java b/app/src/main/java/com/casic/smartwellapp/MainActivity.java index b88eb70..98a6315 100644 --- a/app/src/main/java/com/casic/smartwellapp/MainActivity.java +++ b/app/src/main/java/com/casic/smartwellapp/MainActivity.java @@ -2,9 +2,9 @@ import android.Manifest; import android.annotation.SuppressLint; -import android.app.Activity; import android.content.Context; import android.content.Intent; +import android.content.pm.ApplicationInfo; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.net.Uri; @@ -23,12 +23,14 @@ import android.webkit.WebViewClient; import android.widget.Toast; -import androidx.annotation.RequiresApi; -import androidx.appcompat.app.AppCompatActivity; +import androidx.annotation.Nullable; import androidx.core.app.ActivityCompat; import com.casic.smartwellapp.Entity.DeviceData; import com.casic.smartwellapp.Entity.LoginReturn; +import com.casic.smartwellapp.base.BaseActivity; +import com.casic.smartwellapp.uitil.SaveKeyValues; +import com.fri.libfriapkrecord.read.SignRecordTools; import com.google.gson.Gson; import com.telecomyt.oauthlogin.bean.JiAnBaoCheckResult; import com.telecomyt.oauthlogin.http.HttpCallback; @@ -37,10 +39,13 @@ import java.lang.reflect.Method; import java.util.List; -import static com.telecomyt.oauthlogin.config.Config.LOG_TAG; +public class MainActivity extends BaseActivity { -public class MainActivity extends AppCompatActivity { + private static final String TAG = "MainActivity"; + private static final String oauth_url = "http://menhu.telecomyt.com.cn:8080/"; //单点登录验证地址 + private static final int LOGIN_CODE = 1001; + private static final int REQUEST_READ_PHONE_STATE = 1; private WebView webview; private String token;// token @@ -49,49 +54,28 @@ private String yys; //运营商 private LoginReturn userInfoResult = null; //单点登录返回的用户信息 private DeviceData deviceData = null; //给用户返回的数据 - - private static final String oauth_url = "http://menhu.telecomyt.com.cn:8080/"; //单点登录验证地址 - private long exitTime = 0; //点击退出时间 - - private static final int LOGIN_CODE = 1001; - public static final int REQUEST_READ_PHONE_STATE = 1; - private String msgId; //推送消息id private String msgContent; //推送消息内容 - @RequiresApi(api = Build.VERSION_CODES.KITKAT) @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setContentView(R.layout.activity_main); - try { - Intent intent = new Intent("com.telecomyt.portal.OAUTH"); - intent.putExtra("appID", "3pb316_oauth"); - intent.putExtra("version", "v1"); - startActivityForResult(intent, 1001);//REQUEST_CODE:为自己定义的回调的代码标记。 - } catch (Exception e) { - Toast.makeText(MainActivity.this, "请先安装警务门户", Toast.LENGTH_SHORT).show(); - Log.e(LOG_TAG, "请先安装警务门户"); - } + public int initLayoutView() { + return R.layout.activity_main; + } -// imei = getIMEI(getApplicationContext()); -// imei = getDeviceId(MainActivity.this); + @Override + public void initDataWithState(@Nullable Bundle savedInstanceState) { + + } + + @Override + public void initData() { imei = obtainSimCardSerialNumber();//20210524 Pengxh修改 - -// if (getIntent() != null) { -//// Intent intent = getIntent(); -//// msgId = intent.getStringExtra("id"); -//// msgContent = intent.getStringExtra("content"); -//// Toast.makeText(MainActivity.this,msgContent,Toast.LENGTH_SHORT).show(); -//// Log.e("push",msgContent); -//// } - - //webview + Log.d(TAG, "imei === " + imei); + obtainRecordNumber();//20210813 Pengxh修改 // 获取控件对象 - webview = findViewById(R.id.WV_ID); + webview = findViewById(R.id.webView); WebView.setWebContentsDebuggingEnabled(true); - WebSettings settings = webview.getSettings(); settings.setJavaScriptEnabled(true);//设置webView属性,允许运行js脚本 settings.setDomStorageEnabled(true); @@ -101,7 +85,19 @@ settings.setAllowFileAccess(true);//可访问文件 settings.setDefaultTextEncodingName("UTF-8"); settings.setAllowUniversalAccessFromFileURLs(true); + } + @Override + public void initEvent() { + try { + Intent intent = new Intent("com.telecomyt.portal.OAUTH"); + intent.putExtra("appID", "3pb316_oauth"); + intent.putExtra("version", "v1"); + startActivityForResult(intent, 1001);//REQUEST_CODE:为自己定义的回调的代码标记。 + } catch (Exception e) { + Toast.makeText(MainActivity.this, "请先安装警务门户", Toast.LENGTH_SHORT).show(); + Log.d(TAG, "onCreate-->请先安装警务门户"); + } // 设置在当前WebView继续加载网页 webview.setWebViewClient(new WebViewClient() { @Override @@ -110,13 +106,13 @@ // 处理自定义scheme协议 if (!url.startsWith("http")) { //处理自定义scheme-->androidamap://viewMap?poiname=W00002&lat=39.9055035111111&lng=116.376759027778 - Log.e("scheme", "处理自定义scheme-->" + url); + Log.d(TAG, "处理自定义scheme-->" + url); // 如果要跳转地图 if (url.startsWith("androidamap:")) { String lat = "", lng = "", pointname = ""; //获取问号后的参数 String params = url.substring(url.indexOf('?')); - Log.i("map", params); + Log.d(TAG, "问号后的参数 === " + params); if (url.contains("?")) { String str = params.substring(1); String[] strs = str.split("&"); @@ -161,10 +157,8 @@ } public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) { - //handler.cancel(); 默认的处理方式,WebView变成空白页 //接受证书 handler.proceed(); - //handleMessage(Message msg); 其他处理 } @Override @@ -176,7 +170,6 @@ }); // 给web提供调用接口 webview.addJavascriptInterface(new WebAppInterface(), "android"); - // 加载html文件,欢迎页面 webview.loadUrl("file:///android_asset/hello.html"); } @@ -201,12 +194,12 @@ if (requestCode == 1001) { if (data != null) { String result = data.getStringExtra("result"); - Log.e(LOG_TAG, "吉安宝验证结果 result === " + result); + Log.d(TAG, "吉安宝验证结果 result === " + result); JiAnBaoCheckResult tokenResult = new Gson().fromJson(result, JiAnBaoCheckResult.class); if (tokenResult != null) { if (tokenResult.isResult()) { token = tokenResult.getSubjectDN(); - Log.e(LOG_TAG, "token === " + token); + Log.d(TAG, "token === " + token); // webview.loadUrl("file:///android_asset/index.html?token="+token); if (!TextUtils.isEmpty(token)) { HttpOauthCheckUtil.getInstance().getUserInfo(oauth_url, token, new HttpCallback() { @@ -214,19 +207,19 @@ public void onSuccess(String result) { Toast.makeText(getApplicationContext(), "认证通过,欢迎使用", Toast.LENGTH_SHORT).show(); - Log.e(LOG_TAG, "门户验证结果 === " + result); + Log.d(TAG, "门户验证结果 === " + result); userInfoResult = new Gson().fromJson(result, LoginReturn.class); yys = getYys(getApplicationContext()); String name = userInfoResult.getData().getName(); String identifyCard = userInfoResult.getData().getIdentityCard(); deviceData = new DeviceData(name, identifyCard, yys, imei); - Log.i("deviceData", deviceData.toString()); + Log.d(TAG, "deviceData === " + deviceData.toString()); webview.loadUrl("file:///android_asset/index.html"); } @Override public void onFailed(String err) { - Log.e(LOG_TAG, "错误信息 === " + err); + Log.d(TAG, "错误信息 === " + err); Toast.makeText(getApplicationContext(), err, Toast.LENGTH_SHORT).show(); } @@ -236,38 +229,24 @@ //吉安宝认证失败 Toast.makeText(getApplicationContext(), "吉安宝认证失败", Toast.LENGTH_SHORT).show(); - Log.e(LOG_TAG, "吉安宝认证失败 "); + Log.d(TAG, "吉安宝认证失败 "); } } else { Toast.makeText(getApplicationContext(), "请检查网络", Toast.LENGTH_SHORT).show(); - Log.e(LOG_TAG, "请检查网络"); + Log.d(TAG, "请检查网络"); } } } } -// if (requestCode == LOGIN_CODE && resultCode == 100) { // resultCode 固定为100 -// String result = intent.getStringExtra("result"); -// //result为json格式字符串,其中 result: true 为认证成功,false为失败;code: 错误代码 -// // TODO:解析result -// LoginReturn loginReturn = JSON.parseObject(result, LoginReturn.class); -// if(loginReturn.isResult()){//如果result是true -// this.token = loginReturn.getSubjectDN();//token -// }else{ -// -// } -// Log.i("ActivityResult", "onActivityResult: " + result); -// } -// super.onActivityResult(requestCode, resultCode, intent); } - //我们需要重写回退按钮的时间,当用户点击回退按钮: //1.webView.canGoBack()判断网页是否能后退,可以则goback() //2.如果不可以连续点击两次退出App,否则弹出提示Toast @Override public void onBackPressed() { - Log.i("webUrl", "webviewUrl" + webview.getUrl()); + Log.d(TAG, "onBackPressed === " + webview.getUrl()); if (webview.canGoBack() && !webview.getUrl().endsWith("/#/") && !webview.getUrl().endsWith("/#/login")) { webview.goBack(); } else { @@ -285,7 +264,7 @@ public String getUser() { if (deviceData != null) { String json = new Gson().toJson(deviceData); - Log.i("JSON:", json); + Log.d(TAG, "json === " + json); return json; } else { return ""; @@ -302,6 +281,12 @@ return null; } } + + //提供JS调用Android接口方法 + @JavascriptInterface + public String readRecordNumber() { + return (String) SaveKeyValues.getValue("RecordNumber", ""); + } } //获取运营商 @@ -322,38 +307,10 @@ default: } } - Log.i("yys", "yys:" + yys); -// Toast.makeText(context, "运营商:"+yys, Toast.LENGTH_SHORT).show(); + Log.d(TAG, "运营商 === " + yys); return yys; } - public String getIMEI(Context context) { - TelephonyManager telephonyManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); - @SuppressLint("MissingPermission") String imei = telephonyManager.getDeviceId(); - Log.i("imei", "yys:" + imei); - Toast.makeText(context, "imei:" + imei, Toast.LENGTH_SHORT).show(); - return imei; - } - - @SuppressLint("HardwareIds") - public static String getDeviceId(Context context) { - String deviceId = ""; - TelephonyManager tm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE); - if (null != tm) { - if (ActivityCompat.checkSelfPermission(context, Manifest.permission.READ_PHONE_STATE) != PackageManager.PERMISSION_GRANTED) { - ActivityCompat.requestPermissions((Activity) context, new String[]{Manifest.permission.READ_PHONE_STATE}, REQUEST_READ_PHONE_STATE); - } else { - if (tm.getDeviceId() != null) { - deviceId = tm.getDeviceId(); - } else { - deviceId = Settings.Secure.getString(context.getApplicationContext().getContentResolver(), Settings.Secure.ANDROID_ID); - } - } - Log.d("deviceId--->", "deviceId:" + deviceId); - } - return deviceId; - } - //获取SimSerialNumber @SuppressLint({"HardwareIds"}) public String obtainSimCardSerialNumber() { @@ -367,6 +324,7 @@ telephonyClass = Class.forName(telephony.getClass().getName()); if (ActivityCompat.checkSelfPermission(this, Manifest.permission.READ_PHONE_STATE) != PackageManager.PERMISSION_GRANTED) { ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.READ_PHONE_STATE}, REQUEST_READ_PHONE_STATE); + return ""; } //Android 10以下默认获取deviceId,部分手机获取不到deviceId不到的改为获取sim卡串码,如果依旧获取不到,返回"" String imei = telephony.getDeviceId(); @@ -386,5 +344,16 @@ } return ""; } + + //根据移动警务要求,增加备案号获取sdk + private void obtainRecordNumber() { + ApplicationInfo appInfo = getApplicationInfo(); + if (appInfo == null) { + return; + } + String number = SignRecordTools.readNumbers(appInfo.sourceDir); + Log.d(TAG, "全国注册备案号: " + number); + SaveKeyValues.putValue("RecordNumber", number); + } } diff --git a/app/src/main/java/com/casic/smartwellapp/MapInitActivity.java b/app/src/main/java/com/casic/smartwellapp/MapInitActivity.java index 9cc84e9..a4f4d04 100644 --- a/app/src/main/java/com/casic/smartwellapp/MapInitActivity.java +++ b/app/src/main/java/com/casic/smartwellapp/MapInitActivity.java @@ -1,11 +1,13 @@ package com.casic.smartwellapp; -import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.os.Environment; import android.widget.TextView; +import androidx.annotation.Nullable; + +import com.casic.smartwellapp.base.BaseActivity; import com.easymap.android.maps.v3.EzMap; import com.easymap.android.maps.v3.MapView; import com.easymap.android.maps.v3.geometry.GeoPoint; @@ -20,7 +22,7 @@ import java.io.IOException; import java.io.InputStream; -public class MapInitActivity extends Activity implements EzMap.OnStatusChangeListener { +public class MapInitActivity extends BaseActivity implements EzMap.OnStatusChangeListener { private static final String TAG = "MapInitActivity"; private MapView mapView; @@ -29,9 +31,12 @@ private String pointname; @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setContentView(R.layout.activity_map_init); + public int initLayoutView() { + return R.layout.activity_map_init; + } + + @Override + public void initDataWithState(@Nullable Bundle savedInstanceState) { Intent i = getIntent(); lng = i.getStringExtra("lng"); lat = i.getStringExtra("lat"); @@ -51,6 +56,16 @@ } @Override + public void initData() { + + } + + @Override + public void initEvent() { + + } + + @Override public void onStatusChanged(STATUS arg0) { TextView textview = findViewById(R.id.textview); textview.setText(pointname); diff --git a/app/src/main/java/com/casic/smartwellapp/PermissionActivity.java b/app/src/main/java/com/casic/smartwellapp/PermissionActivity.java index 93d32f1..8d54f74 100644 --- a/app/src/main/java/com/casic/smartwellapp/PermissionActivity.java +++ b/app/src/main/java/com/casic/smartwellapp/PermissionActivity.java @@ -1,7 +1,6 @@ package com.casic.smartwellapp; import android.content.Intent; -import android.os.Build; import android.os.Bundle; import android.util.Log; @@ -23,15 +22,10 @@ @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); - //判断是否有权限,如果版本大于5.1才需要判断(即6.0以上),其他则不需要判断。 - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { - if (EasyPermissions.hasPermissions(this, Constant.USER_PERMISSIONS)) { - startMainActivity(); - } else { - EasyPermissions.requestPermissions(this, "需要获取相关权限", Constant.PERMISSIONS_CODE, Constant.USER_PERMISSIONS); - } - } else { + if (EasyPermissions.hasPermissions(this, Constant.USER_PERMISSIONS)) { startMainActivity(); + } else { + EasyPermissions.requestPermissions(this, "需要获取相关权限", Constant.PERMISSIONS_CODE, Constant.USER_PERMISSIONS); } } diff --git a/app/src/main/java/com/casic/smartwellapp/base/BaseActivity.java b/app/src/main/java/com/casic/smartwellapp/base/BaseActivity.java new file mode 100644 index 0000000..1cb0e54 --- /dev/null +++ b/app/src/main/java/com/casic/smartwellapp/base/BaseActivity.java @@ -0,0 +1,38 @@ +package com.casic.smartwellapp.base; + +import android.os.Bundle; + +import androidx.annotation.Nullable; +import androidx.appcompat.app.AppCompatActivity; + +public abstract class BaseActivity extends AppCompatActivity { + + @Override + protected void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(initLayoutView()); + initDataWithState(savedInstanceState); + initData(); + initEvent(); + } + + /** + * 初始化xml布局 + */ + public abstract int initLayoutView(); + + /** + * 初始化默认数据 + */ + public abstract void initData(); + + /** + * 初始化默认数据 + */ + public abstract void initDataWithState(@Nullable Bundle savedInstanceState); + + /** + * 初始化业务逻辑 + */ + public abstract void initEvent(); +} diff --git a/app/src/main/java/com/casic/smartwellapp/base/BaseApplication.java b/app/src/main/java/com/casic/smartwellapp/base/BaseApplication.java new file mode 100644 index 0000000..ad3432c --- /dev/null +++ b/app/src/main/java/com/casic/smartwellapp/base/BaseApplication.java @@ -0,0 +1,31 @@ +package com.casic.smartwellapp.base; + +import android.app.Application; + +import com.casic.smartwellapp.uitil.SaveKeyValues; + +public class BaseApplication extends Application { + + private volatile static BaseApplication instance; + + @Override + public void onCreate() { + super.onCreate(); + instance = this; + SaveKeyValues.initSharedPreferences(this); + } + + /** + * 双重锁单例 + */ + public static BaseApplication getInstance() { + if (instance == null) { + synchronized (BaseApplication.class) { + if (instance == null) { + instance = new BaseApplication(); + } + } + } + return instance; + } +} diff --git a/app/build.gradle b/app/build.gradle index 0614b2f..5ec7f4d 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,15 +1,24 @@ apply plugin: 'com.android.application' android { - compileSdkVersion 29 - buildToolsVersion "29.0.3" + compileSdkVersion 30 + buildToolsVersion "30.0.3" defaultConfig { applicationId "com.casic.smartwellapp" - minSdkVersion 17 - targetSdkVersion 29 - versionCode 8 - versionName "v1.1.2" - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + //备案号sdk版本要求最低24 + minSdkVersion 24 + targetSdkVersion 30 + /** + * 使用中版本如下: + * versionCode 8 + * versionName "v1.1.2" + * + * 待测试上架版本: + * versionCode 9 + * versionName "v1.1.3" + * */ + versionCode 9 + versionName "v1.1.3" multiDexEnabled true } buildTypes { @@ -37,32 +46,50 @@ exclude 'META-INF/LGPL2.1' exclude 'META-INF/services/javax.annotation.processing.Processor' exclude 'META-INF/rxjava.properties' - exclude 'org/codehaus/jackson/impl/VERSION.txt' - exclude 'org/codehaus/jackson/map/VERSION.txt' +// exclude 'org/codehaus/jackson/impl/VERSION.txt' +// exclude 'org/codehaus/jackson/map/VERSION.txt' + } + + //导入aar包 + repositories { + flatDir { + dirs 'libs' + } } } dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') - implementation 'androidx.appcompat:appcompat:1.2.0' - implementation 'androidx.constraintlayout:constraintlayout:2.0.4' - implementation 'pub.devrel:easypermissions:1.3.0' - testImplementation 'junit:junit:4.12' - androidTestImplementation 'androidx.test:runner:1.2.0' - androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0' + //移动警务授权sdk implementation files('libs/OauthLoginJar_V1.0.jar') - implementation 'com.lbx:xTools:2.1.2' - implementation 'org.bouncycastle:bcmail-jdk15on:1.59' - implementation 'org.apache.commons:commons-lang3:3.1' - implementation 'com.alibaba:fastjson:1.2.68' - implementation files('libs/guava-17.0.jar') - implementation files('libs/androidsvg-1.2.2-beta-1.jar') + //山海易绘离线地图 implementation files('libs/EzMapServiceApiForAndroid-1.0.3.0.jar') implementation files('libs/EzRouterAPIForAndroid.v1.0.1.201206151022.jar') - implementation files('libs/jts-1.13.jar') - implementation files('libs/kxml2-2.3.0.jar') implementation files('libs/EzLicenseAPI4Android.jar') implementation files('libs/EzMapApiForAndnroid.3.1.0.2.jar') - implementation files('libs/jackson-core-lgpl-1.9.5.jar') - implementation files('libs/jackson-mapper-lgpl-1.9.5.jar') + //移动警务备案号sdk + implementation(name: 'libfriapkrecord-r1.0.1', ext: 'aar') + implementation 'androidx.appcompat:appcompat:1.2.0' + //Google申请手机相关权限官方库 + implementation group: 'pub.devrel', name: 'easypermissions', version: '3.0.0' + //Google官方Json解析 + implementation group: 'com.google.code.gson', name: 'gson', version: '2.8.6' +// implementation group: 'org.bouncycastle', name: 'bcmail-jdk15on', version: '1.68' + //公共帮助类 +// implementation group: 'org.apache.commons', name: 'commons-lang3', version: '3.1' + //阿里巴巴Json解析库 +// implementation group: 'com.alibaba', name: 'fastjson', version: '1.2.76' + //Google提供的一套工具类 +// implementation group: 'com.google.guava', name: 'guava', version: '30.1.1-jre' + //‎安卓SVG渲染库 +// implementation group: 'com.caverock', name: 'androidsvg', version: '1.4' + //JTS拓扑套件是用于建模和操纵二维线性几何形状的API +// implementation group: 'com.vividsolutions', name: 'jts', version: '1.13' + //Json解析 +// implementation group: 'org.codehaus.jackson', name: 'jackson-core-lgpl', version: '1.9.13' + //Jackson数据映射 +// implementation group: 'org.codehaus.jackson', name: 'jackson-mapper-lgpl', version: '1.9.13' + //xml解析 +// implementation group: 'net.sf.kxml', name: 'kxml2', version: '2.3.0' +// implementation 'com.lbx:xTools:2.1.2' } diff --git a/app/libs/androidsvg-1.2.2-beta-1.jar b/app/libs/androidsvg-1.2.2-beta-1.jar deleted file mode 100644 index aa69f00..0000000 --- a/app/libs/androidsvg-1.2.2-beta-1.jar +++ /dev/null Binary files differ diff --git a/app/libs/guava-17.0.jar b/app/libs/guava-17.0.jar deleted file mode 100644 index 661fc74..0000000 --- a/app/libs/guava-17.0.jar +++ /dev/null Binary files differ diff --git a/app/libs/jackson-core-lgpl-1.9.5.jar b/app/libs/jackson-core-lgpl-1.9.5.jar deleted file mode 100644 index 89dc160..0000000 --- a/app/libs/jackson-core-lgpl-1.9.5.jar +++ /dev/null Binary files differ diff --git a/app/libs/jackson-mapper-lgpl-1.9.5.jar b/app/libs/jackson-mapper-lgpl-1.9.5.jar deleted file mode 100644 index 095ffb3..0000000 --- a/app/libs/jackson-mapper-lgpl-1.9.5.jar +++ /dev/null Binary files differ diff --git a/app/libs/jts-1.13.jar b/app/libs/jts-1.13.jar deleted file mode 100644 index bbaa20b..0000000 --- a/app/libs/jts-1.13.jar +++ /dev/null Binary files differ diff --git a/app/libs/kxml2-2.3.0.jar b/app/libs/kxml2-2.3.0.jar deleted file mode 100644 index 6470952..0000000 --- a/app/libs/kxml2-2.3.0.jar +++ /dev/null Binary files differ diff --git a/app/libs/libfriapkrecord-r1.0.1.aar b/app/libs/libfriapkrecord-r1.0.1.aar new file mode 100644 index 0000000..ad69876 --- /dev/null +++ b/app/libs/libfriapkrecord-r1.0.1.aar Binary files differ diff --git a/app/src/androidTest/java/com/casic/smartwellapp/ExampleInstrumentedTest.java b/app/src/androidTest/java/com/casic/smartwellapp/ExampleInstrumentedTest.java deleted file mode 100644 index 3013492..0000000 --- a/app/src/androidTest/java/com/casic/smartwellapp/ExampleInstrumentedTest.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.casic.smartwellapp; - -import android.content.Context; - -import androidx.test.InstrumentationRegistry; -import androidx.test.runner.AndroidJUnit4; - -import org.junit.Test; -import org.junit.runner.RunWith; - -import static org.junit.Assert.*; - -/** - * Instrumented test, which will execute on an Android device. - * - * @see Testing documentation - */ -@RunWith(AndroidJUnit4.class) -public class ExampleInstrumentedTest { - @Test - public void useAppContext() { - // Context of the app under test. - Context appContext = InstrumentationRegistry.getTargetContext(); - - assertEquals("com.casic.smartwellapp", appContext.getPackageName()); - } -} diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 4eeda90..bc63fec 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -3,6 +3,9 @@ xmlns:tools="http://schemas.android.com/tools" package="com.casic.smartwellapp"> + @@ -20,22 +23,23 @@ - - - + + + diff --git a/app/src/main/assets/error.html b/app/src/main/assets/error.html index dcd365f..5abea9c 100644 --- a/app/src/main/assets/error.html +++ b/app/src/main/assets/error.html @@ -1,82 +1,90 @@ - - - - 404 - - - -
- -
-
- -
-
- 请检查网络后重试 -
- - - -
-
- - - + .text-area { + + height: 75px; + } + + .tips { + font-size: 25px; + line-height: 35px; + color: white; + text-align: center; + } + + .tips img { + width: 70%; + } + + .btn { + margin-top: 5%; + text-align: center; + } + + .btn button { + font-size: 30px; + padding: 10px 20px; + border-radius: 20px; + background-color: #ffee00; + color: #ff7700; + margin: 0 auto; + } + + .btn button:hover { + background-color: #ffbb00; + color: #ffff00; + } + + + +
+ +
+
+ +
+
+ 请检查网络后重试 +
+ + + +
+
+ + + diff --git a/app/src/main/assets/hello.html b/app/src/main/assets/hello.html index 5c45033..5fde805 100644 --- a/app/src/main/assets/hello.html +++ b/app/src/main/assets/hello.html @@ -1,64 +1,73 @@ - - - - 404 - - - -
-
- - + .airplane { + width: 50%; + margin: 20% 25% 10% 25%; + text-align: center; + } + + .text-area { + + height: 75px; + } + + .tips { + font-size: 25px; + line-height: 35px; + color: white; + text-align: center; + } + + .tips img { + width: 70%; + } + + .btn { + margin-top: 5%; + text-align: center; + } + + .btn button { + font-size: 30px; + padding: 10px 20px; + border-radius: 20px; + background-color: #ffee00; + color: #ff7700; + margin: 0 auto; + } + + .btn button:hover { + background-color: #ffbb00; + color: #ffff00; + } + + + +
+
+ + diff --git a/app/src/main/assets/index.html b/app/src/main/assets/index.html index d5b666a..1e55e53 100644 --- a/app/src/main/assets/index.html +++ b/app/src/main/assets/index.html @@ -1 +1,18 @@ -智能闸井
\ No newline at end of file + + + + + + + + 智能闸井 + + + +
+ + + + + diff --git a/app/src/main/assets/map.html b/app/src/main/assets/map.html index 6665800..d9f8d04 100644 --- a/app/src/main/assets/map.html +++ b/app/src/main/assets/map.html @@ -1,79 +1,79 @@ - - - - - - easyMap JavaScript API Example: simple + + + + + + easyMap JavaScript API Example: simple - - + + - - - -
- - - + var pIcon = new Icon(); // 构造一个图标类 + pIcon.image = "static/images/location.png"; + pIcon.height = 16; + pIcon.width = 16; + var strMsg = theRequest.pointname; + var marker = new Marker(centerP, pIcon); // 构造一个标记叠加对象 + uEzMap.addOverlay(marker); // 将标记叠加对象添加到地图中 + // 构造鹰眼对象 + var ov = new OverView(); + // 设置鹰眼的宽度,单位为像素px + ov.width = 200; + // 设置鹰眼的高度 + ov.height = 200; + // 添加鹰眼对象到地图对象中 + uEzMap.addOverView(ov); + } + + + diff --git a/app/src/main/java/com/casic/smartwellapp/Entity/Constant.java b/app/src/main/java/com/casic/smartwellapp/Entity/Constant.java index 66d61e1..99c2ff3 100644 --- a/app/src/main/java/com/casic/smartwellapp/Entity/Constant.java +++ b/app/src/main/java/com/casic/smartwellapp/Entity/Constant.java @@ -1,11 +1,9 @@ package com.casic.smartwellapp.Entity; import android.Manifest; -import android.os.Environment; public class Constant { - public static final String LICENSE_PATH = Environment.getExternalStorageDirectory() + "/PGIS/license/EzServiceClient4Android.lic"; - // public static final String LICENSE_PATH = "file:///android_asset/EzServiceClient4Android.lic"; public static final int PERMISSIONS_CODE = 11; - public static final String[] USER_PERMISSIONS = {Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE}; + public static final String[] USER_PERMISSIONS = {Manifest.permission.READ_EXTERNAL_STORAGE, + Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.READ_PHONE_STATE}; } diff --git a/app/src/main/java/com/casic/smartwellapp/Entity/Data.java b/app/src/main/java/com/casic/smartwellapp/Entity/Data.java index 317acb9..bd79a68 100644 --- a/app/src/main/java/com/casic/smartwellapp/Entity/Data.java +++ b/app/src/main/java/com/casic/smartwellapp/Entity/Data.java @@ -1,8 +1,8 @@ package com.casic.smartwellapp.Entity; public class Data { - String identityCard; - String name; + private String identityCard; + private String name; public String getIdentityCard() { return identityCard; diff --git a/app/src/main/java/com/casic/smartwellapp/Entity/DeviceData.java b/app/src/main/java/com/casic/smartwellapp/Entity/DeviceData.java index a17c74a..1f064c4 100644 --- a/app/src/main/java/com/casic/smartwellapp/Entity/DeviceData.java +++ b/app/src/main/java/com/casic/smartwellapp/Entity/DeviceData.java @@ -1,12 +1,12 @@ package com.casic.smartwellapp.Entity; public class DeviceData { - String name; - String card; - String yys; - String imei = ""; + private String name; + private String card; + private String yys; + private String imei; - public DeviceData(String name, String card, String yys,String imei) { + public DeviceData(String name, String card, String yys, String imei) { this.name = name; this.card = card; this.yys = yys; diff --git a/app/src/main/java/com/casic/smartwellapp/Entity/LoginReturn.java b/app/src/main/java/com/casic/smartwellapp/Entity/LoginReturn.java index 7ed1948..4f3d7c9 100644 --- a/app/src/main/java/com/casic/smartwellapp/Entity/LoginReturn.java +++ b/app/src/main/java/com/casic/smartwellapp/Entity/LoginReturn.java @@ -2,9 +2,9 @@ public class LoginReturn { - String code; - String msg; - Data data; + private String code; + private String msg; + private Data data; public String getCode() { return code; diff --git a/app/src/main/java/com/casic/smartwellapp/MainActivity.java b/app/src/main/java/com/casic/smartwellapp/MainActivity.java index b88eb70..98a6315 100644 --- a/app/src/main/java/com/casic/smartwellapp/MainActivity.java +++ b/app/src/main/java/com/casic/smartwellapp/MainActivity.java @@ -2,9 +2,9 @@ import android.Manifest; import android.annotation.SuppressLint; -import android.app.Activity; import android.content.Context; import android.content.Intent; +import android.content.pm.ApplicationInfo; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.net.Uri; @@ -23,12 +23,14 @@ import android.webkit.WebViewClient; import android.widget.Toast; -import androidx.annotation.RequiresApi; -import androidx.appcompat.app.AppCompatActivity; +import androidx.annotation.Nullable; import androidx.core.app.ActivityCompat; import com.casic.smartwellapp.Entity.DeviceData; import com.casic.smartwellapp.Entity.LoginReturn; +import com.casic.smartwellapp.base.BaseActivity; +import com.casic.smartwellapp.uitil.SaveKeyValues; +import com.fri.libfriapkrecord.read.SignRecordTools; import com.google.gson.Gson; import com.telecomyt.oauthlogin.bean.JiAnBaoCheckResult; import com.telecomyt.oauthlogin.http.HttpCallback; @@ -37,10 +39,13 @@ import java.lang.reflect.Method; import java.util.List; -import static com.telecomyt.oauthlogin.config.Config.LOG_TAG; +public class MainActivity extends BaseActivity { -public class MainActivity extends AppCompatActivity { + private static final String TAG = "MainActivity"; + private static final String oauth_url = "http://menhu.telecomyt.com.cn:8080/"; //单点登录验证地址 + private static final int LOGIN_CODE = 1001; + private static final int REQUEST_READ_PHONE_STATE = 1; private WebView webview; private String token;// token @@ -49,49 +54,28 @@ private String yys; //运营商 private LoginReturn userInfoResult = null; //单点登录返回的用户信息 private DeviceData deviceData = null; //给用户返回的数据 - - private static final String oauth_url = "http://menhu.telecomyt.com.cn:8080/"; //单点登录验证地址 - private long exitTime = 0; //点击退出时间 - - private static final int LOGIN_CODE = 1001; - public static final int REQUEST_READ_PHONE_STATE = 1; - private String msgId; //推送消息id private String msgContent; //推送消息内容 - @RequiresApi(api = Build.VERSION_CODES.KITKAT) @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setContentView(R.layout.activity_main); - try { - Intent intent = new Intent("com.telecomyt.portal.OAUTH"); - intent.putExtra("appID", "3pb316_oauth"); - intent.putExtra("version", "v1"); - startActivityForResult(intent, 1001);//REQUEST_CODE:为自己定义的回调的代码标记。 - } catch (Exception e) { - Toast.makeText(MainActivity.this, "请先安装警务门户", Toast.LENGTH_SHORT).show(); - Log.e(LOG_TAG, "请先安装警务门户"); - } + public int initLayoutView() { + return R.layout.activity_main; + } -// imei = getIMEI(getApplicationContext()); -// imei = getDeviceId(MainActivity.this); + @Override + public void initDataWithState(@Nullable Bundle savedInstanceState) { + + } + + @Override + public void initData() { imei = obtainSimCardSerialNumber();//20210524 Pengxh修改 - -// if (getIntent() != null) { -//// Intent intent = getIntent(); -//// msgId = intent.getStringExtra("id"); -//// msgContent = intent.getStringExtra("content"); -//// Toast.makeText(MainActivity.this,msgContent,Toast.LENGTH_SHORT).show(); -//// Log.e("push",msgContent); -//// } - - //webview + Log.d(TAG, "imei === " + imei); + obtainRecordNumber();//20210813 Pengxh修改 // 获取控件对象 - webview = findViewById(R.id.WV_ID); + webview = findViewById(R.id.webView); WebView.setWebContentsDebuggingEnabled(true); - WebSettings settings = webview.getSettings(); settings.setJavaScriptEnabled(true);//设置webView属性,允许运行js脚本 settings.setDomStorageEnabled(true); @@ -101,7 +85,19 @@ settings.setAllowFileAccess(true);//可访问文件 settings.setDefaultTextEncodingName("UTF-8"); settings.setAllowUniversalAccessFromFileURLs(true); + } + @Override + public void initEvent() { + try { + Intent intent = new Intent("com.telecomyt.portal.OAUTH"); + intent.putExtra("appID", "3pb316_oauth"); + intent.putExtra("version", "v1"); + startActivityForResult(intent, 1001);//REQUEST_CODE:为自己定义的回调的代码标记。 + } catch (Exception e) { + Toast.makeText(MainActivity.this, "请先安装警务门户", Toast.LENGTH_SHORT).show(); + Log.d(TAG, "onCreate-->请先安装警务门户"); + } // 设置在当前WebView继续加载网页 webview.setWebViewClient(new WebViewClient() { @Override @@ -110,13 +106,13 @@ // 处理自定义scheme协议 if (!url.startsWith("http")) { //处理自定义scheme-->androidamap://viewMap?poiname=W00002&lat=39.9055035111111&lng=116.376759027778 - Log.e("scheme", "处理自定义scheme-->" + url); + Log.d(TAG, "处理自定义scheme-->" + url); // 如果要跳转地图 if (url.startsWith("androidamap:")) { String lat = "", lng = "", pointname = ""; //获取问号后的参数 String params = url.substring(url.indexOf('?')); - Log.i("map", params); + Log.d(TAG, "问号后的参数 === " + params); if (url.contains("?")) { String str = params.substring(1); String[] strs = str.split("&"); @@ -161,10 +157,8 @@ } public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) { - //handler.cancel(); 默认的处理方式,WebView变成空白页 //接受证书 handler.proceed(); - //handleMessage(Message msg); 其他处理 } @Override @@ -176,7 +170,6 @@ }); // 给web提供调用接口 webview.addJavascriptInterface(new WebAppInterface(), "android"); - // 加载html文件,欢迎页面 webview.loadUrl("file:///android_asset/hello.html"); } @@ -201,12 +194,12 @@ if (requestCode == 1001) { if (data != null) { String result = data.getStringExtra("result"); - Log.e(LOG_TAG, "吉安宝验证结果 result === " + result); + Log.d(TAG, "吉安宝验证结果 result === " + result); JiAnBaoCheckResult tokenResult = new Gson().fromJson(result, JiAnBaoCheckResult.class); if (tokenResult != null) { if (tokenResult.isResult()) { token = tokenResult.getSubjectDN(); - Log.e(LOG_TAG, "token === " + token); + Log.d(TAG, "token === " + token); // webview.loadUrl("file:///android_asset/index.html?token="+token); if (!TextUtils.isEmpty(token)) { HttpOauthCheckUtil.getInstance().getUserInfo(oauth_url, token, new HttpCallback() { @@ -214,19 +207,19 @@ public void onSuccess(String result) { Toast.makeText(getApplicationContext(), "认证通过,欢迎使用", Toast.LENGTH_SHORT).show(); - Log.e(LOG_TAG, "门户验证结果 === " + result); + Log.d(TAG, "门户验证结果 === " + result); userInfoResult = new Gson().fromJson(result, LoginReturn.class); yys = getYys(getApplicationContext()); String name = userInfoResult.getData().getName(); String identifyCard = userInfoResult.getData().getIdentityCard(); deviceData = new DeviceData(name, identifyCard, yys, imei); - Log.i("deviceData", deviceData.toString()); + Log.d(TAG, "deviceData === " + deviceData.toString()); webview.loadUrl("file:///android_asset/index.html"); } @Override public void onFailed(String err) { - Log.e(LOG_TAG, "错误信息 === " + err); + Log.d(TAG, "错误信息 === " + err); Toast.makeText(getApplicationContext(), err, Toast.LENGTH_SHORT).show(); } @@ -236,38 +229,24 @@ //吉安宝认证失败 Toast.makeText(getApplicationContext(), "吉安宝认证失败", Toast.LENGTH_SHORT).show(); - Log.e(LOG_TAG, "吉安宝认证失败 "); + Log.d(TAG, "吉安宝认证失败 "); } } else { Toast.makeText(getApplicationContext(), "请检查网络", Toast.LENGTH_SHORT).show(); - Log.e(LOG_TAG, "请检查网络"); + Log.d(TAG, "请检查网络"); } } } } -// if (requestCode == LOGIN_CODE && resultCode == 100) { // resultCode 固定为100 -// String result = intent.getStringExtra("result"); -// //result为json格式字符串,其中 result: true 为认证成功,false为失败;code: 错误代码 -// // TODO:解析result -// LoginReturn loginReturn = JSON.parseObject(result, LoginReturn.class); -// if(loginReturn.isResult()){//如果result是true -// this.token = loginReturn.getSubjectDN();//token -// }else{ -// -// } -// Log.i("ActivityResult", "onActivityResult: " + result); -// } -// super.onActivityResult(requestCode, resultCode, intent); } - //我们需要重写回退按钮的时间,当用户点击回退按钮: //1.webView.canGoBack()判断网页是否能后退,可以则goback() //2.如果不可以连续点击两次退出App,否则弹出提示Toast @Override public void onBackPressed() { - Log.i("webUrl", "webviewUrl" + webview.getUrl()); + Log.d(TAG, "onBackPressed === " + webview.getUrl()); if (webview.canGoBack() && !webview.getUrl().endsWith("/#/") && !webview.getUrl().endsWith("/#/login")) { webview.goBack(); } else { @@ -285,7 +264,7 @@ public String getUser() { if (deviceData != null) { String json = new Gson().toJson(deviceData); - Log.i("JSON:", json); + Log.d(TAG, "json === " + json); return json; } else { return ""; @@ -302,6 +281,12 @@ return null; } } + + //提供JS调用Android接口方法 + @JavascriptInterface + public String readRecordNumber() { + return (String) SaveKeyValues.getValue("RecordNumber", ""); + } } //获取运营商 @@ -322,38 +307,10 @@ default: } } - Log.i("yys", "yys:" + yys); -// Toast.makeText(context, "运营商:"+yys, Toast.LENGTH_SHORT).show(); + Log.d(TAG, "运营商 === " + yys); return yys; } - public String getIMEI(Context context) { - TelephonyManager telephonyManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); - @SuppressLint("MissingPermission") String imei = telephonyManager.getDeviceId(); - Log.i("imei", "yys:" + imei); - Toast.makeText(context, "imei:" + imei, Toast.LENGTH_SHORT).show(); - return imei; - } - - @SuppressLint("HardwareIds") - public static String getDeviceId(Context context) { - String deviceId = ""; - TelephonyManager tm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE); - if (null != tm) { - if (ActivityCompat.checkSelfPermission(context, Manifest.permission.READ_PHONE_STATE) != PackageManager.PERMISSION_GRANTED) { - ActivityCompat.requestPermissions((Activity) context, new String[]{Manifest.permission.READ_PHONE_STATE}, REQUEST_READ_PHONE_STATE); - } else { - if (tm.getDeviceId() != null) { - deviceId = tm.getDeviceId(); - } else { - deviceId = Settings.Secure.getString(context.getApplicationContext().getContentResolver(), Settings.Secure.ANDROID_ID); - } - } - Log.d("deviceId--->", "deviceId:" + deviceId); - } - return deviceId; - } - //获取SimSerialNumber @SuppressLint({"HardwareIds"}) public String obtainSimCardSerialNumber() { @@ -367,6 +324,7 @@ telephonyClass = Class.forName(telephony.getClass().getName()); if (ActivityCompat.checkSelfPermission(this, Manifest.permission.READ_PHONE_STATE) != PackageManager.PERMISSION_GRANTED) { ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.READ_PHONE_STATE}, REQUEST_READ_PHONE_STATE); + return ""; } //Android 10以下默认获取deviceId,部分手机获取不到deviceId不到的改为获取sim卡串码,如果依旧获取不到,返回"" String imei = telephony.getDeviceId(); @@ -386,5 +344,16 @@ } return ""; } + + //根据移动警务要求,增加备案号获取sdk + private void obtainRecordNumber() { + ApplicationInfo appInfo = getApplicationInfo(); + if (appInfo == null) { + return; + } + String number = SignRecordTools.readNumbers(appInfo.sourceDir); + Log.d(TAG, "全国注册备案号: " + number); + SaveKeyValues.putValue("RecordNumber", number); + } } diff --git a/app/src/main/java/com/casic/smartwellapp/MapInitActivity.java b/app/src/main/java/com/casic/smartwellapp/MapInitActivity.java index 9cc84e9..a4f4d04 100644 --- a/app/src/main/java/com/casic/smartwellapp/MapInitActivity.java +++ b/app/src/main/java/com/casic/smartwellapp/MapInitActivity.java @@ -1,11 +1,13 @@ package com.casic.smartwellapp; -import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.os.Environment; import android.widget.TextView; +import androidx.annotation.Nullable; + +import com.casic.smartwellapp.base.BaseActivity; import com.easymap.android.maps.v3.EzMap; import com.easymap.android.maps.v3.MapView; import com.easymap.android.maps.v3.geometry.GeoPoint; @@ -20,7 +22,7 @@ import java.io.IOException; import java.io.InputStream; -public class MapInitActivity extends Activity implements EzMap.OnStatusChangeListener { +public class MapInitActivity extends BaseActivity implements EzMap.OnStatusChangeListener { private static final String TAG = "MapInitActivity"; private MapView mapView; @@ -29,9 +31,12 @@ private String pointname; @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setContentView(R.layout.activity_map_init); + public int initLayoutView() { + return R.layout.activity_map_init; + } + + @Override + public void initDataWithState(@Nullable Bundle savedInstanceState) { Intent i = getIntent(); lng = i.getStringExtra("lng"); lat = i.getStringExtra("lat"); @@ -51,6 +56,16 @@ } @Override + public void initData() { + + } + + @Override + public void initEvent() { + + } + + @Override public void onStatusChanged(STATUS arg0) { TextView textview = findViewById(R.id.textview); textview.setText(pointname); diff --git a/app/src/main/java/com/casic/smartwellapp/PermissionActivity.java b/app/src/main/java/com/casic/smartwellapp/PermissionActivity.java index 93d32f1..8d54f74 100644 --- a/app/src/main/java/com/casic/smartwellapp/PermissionActivity.java +++ b/app/src/main/java/com/casic/smartwellapp/PermissionActivity.java @@ -1,7 +1,6 @@ package com.casic.smartwellapp; import android.content.Intent; -import android.os.Build; import android.os.Bundle; import android.util.Log; @@ -23,15 +22,10 @@ @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); - //判断是否有权限,如果版本大于5.1才需要判断(即6.0以上),其他则不需要判断。 - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { - if (EasyPermissions.hasPermissions(this, Constant.USER_PERMISSIONS)) { - startMainActivity(); - } else { - EasyPermissions.requestPermissions(this, "需要获取相关权限", Constant.PERMISSIONS_CODE, Constant.USER_PERMISSIONS); - } - } else { + if (EasyPermissions.hasPermissions(this, Constant.USER_PERMISSIONS)) { startMainActivity(); + } else { + EasyPermissions.requestPermissions(this, "需要获取相关权限", Constant.PERMISSIONS_CODE, Constant.USER_PERMISSIONS); } } diff --git a/app/src/main/java/com/casic/smartwellapp/base/BaseActivity.java b/app/src/main/java/com/casic/smartwellapp/base/BaseActivity.java new file mode 100644 index 0000000..1cb0e54 --- /dev/null +++ b/app/src/main/java/com/casic/smartwellapp/base/BaseActivity.java @@ -0,0 +1,38 @@ +package com.casic.smartwellapp.base; + +import android.os.Bundle; + +import androidx.annotation.Nullable; +import androidx.appcompat.app.AppCompatActivity; + +public abstract class BaseActivity extends AppCompatActivity { + + @Override + protected void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(initLayoutView()); + initDataWithState(savedInstanceState); + initData(); + initEvent(); + } + + /** + * 初始化xml布局 + */ + public abstract int initLayoutView(); + + /** + * 初始化默认数据 + */ + public abstract void initData(); + + /** + * 初始化默认数据 + */ + public abstract void initDataWithState(@Nullable Bundle savedInstanceState); + + /** + * 初始化业务逻辑 + */ + public abstract void initEvent(); +} diff --git a/app/src/main/java/com/casic/smartwellapp/base/BaseApplication.java b/app/src/main/java/com/casic/smartwellapp/base/BaseApplication.java new file mode 100644 index 0000000..ad3432c --- /dev/null +++ b/app/src/main/java/com/casic/smartwellapp/base/BaseApplication.java @@ -0,0 +1,31 @@ +package com.casic.smartwellapp.base; + +import android.app.Application; + +import com.casic.smartwellapp.uitil.SaveKeyValues; + +public class BaseApplication extends Application { + + private volatile static BaseApplication instance; + + @Override + public void onCreate() { + super.onCreate(); + instance = this; + SaveKeyValues.initSharedPreferences(this); + } + + /** + * 双重锁单例 + */ + public static BaseApplication getInstance() { + if (instance == null) { + synchronized (BaseApplication.class) { + if (instance == null) { + instance = new BaseApplication(); + } + } + } + return instance; + } +} diff --git a/app/src/main/java/com/casic/smartwellapp/uitil/SaveKeyValues.java b/app/src/main/java/com/casic/smartwellapp/uitil/SaveKeyValues.java new file mode 100644 index 0000000..8995201 --- /dev/null +++ b/app/src/main/java/com/casic/smartwellapp/uitil/SaveKeyValues.java @@ -0,0 +1,85 @@ +package com.casic.smartwellapp.uitil; + +import android.annotation.SuppressLint; +import android.content.Context; +import android.content.SharedPreferences; + +public class SaveKeyValues { + private static final String TAG = "SaveKeyValues"; + @SuppressLint({"StaticFieldLeak"}) + private static Context context; + private static String fileName; + + public static void initSharedPreferences(Context mContext) { + context = mContext.getApplicationContext(); + String packageName = context.getPackageName(); + //获取到的包名带有“.”方便命名,取最后一个作为sp文件名,例如:com.casic.smartwellapp + String[] split = packageName.split("\\.");//先转义.之后才能分割 + fileName = split[split.length - 1]; + } + + /** + * 存储 + */ + public static void putValue(String key, Object object) { + SharedPreferences sharedPreferences = context.getSharedPreferences(fileName, Context.MODE_PRIVATE); + SharedPreferences.Editor editor = sharedPreferences.edit(); + if (object instanceof String) { + editor.putString(key, (String) object).apply(); + } else if (object instanceof Integer) { + editor.putInt(key, (Integer) object); + } else if (object instanceof Boolean) { + editor.putBoolean(key, (Boolean) object).apply(); + } else if (object instanceof Float) { + editor.putFloat(key, (Float) object).apply(); + } else if (object instanceof Long) { + editor.putLong(key, (Long) object).apply(); + } else { + editor.putString(key, object.toString()).apply(); + } + } + + /** + * 获取保存的数据 + */ + public static Object getValue(String key, Object defaultObject) { + SharedPreferences sharedPreferences = context.getSharedPreferences(fileName, Context.MODE_PRIVATE); + if (defaultObject instanceof String) { + return sharedPreferences.getString(key, (String) defaultObject); + } else if (defaultObject instanceof Integer) { + return sharedPreferences.getInt(key, (Integer) defaultObject); + } else if (defaultObject instanceof Boolean) { + return sharedPreferences.getBoolean(key, (Boolean) defaultObject); + } else if (defaultObject instanceof Float) { + return sharedPreferences.getFloat(key, (Float) defaultObject); + } else if (defaultObject instanceof Long) { + return sharedPreferences.getLong(key, (Long) defaultObject); + } else { + return sharedPreferences.getString(key, null); + } + } + + /** + * 移除某个key值已经对应的值 + */ + public static void removeKey(String key) { + SharedPreferences sharedPreferences = context.getSharedPreferences(fileName, Context.MODE_PRIVATE); + sharedPreferences.edit().remove(key).apply(); + } + + /** + * 清除所有数据 + */ + public static void clearAll() { + SharedPreferences sharedPreferences = context.getSharedPreferences(fileName, Context.MODE_PRIVATE); + sharedPreferences.edit().clear().apply(); + } + + /** + * 查询某个key是否存在 + */ + public static boolean containsKey(String key) { + SharedPreferences sharedPreferences = context.getSharedPreferences(fileName, Context.MODE_PRIVATE); + return sharedPreferences.contains(key); + } +} diff --git a/app/build.gradle b/app/build.gradle index 0614b2f..5ec7f4d 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,15 +1,24 @@ apply plugin: 'com.android.application' android { - compileSdkVersion 29 - buildToolsVersion "29.0.3" + compileSdkVersion 30 + buildToolsVersion "30.0.3" defaultConfig { applicationId "com.casic.smartwellapp" - minSdkVersion 17 - targetSdkVersion 29 - versionCode 8 - versionName "v1.1.2" - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + //备案号sdk版本要求最低24 + minSdkVersion 24 + targetSdkVersion 30 + /** + * 使用中版本如下: + * versionCode 8 + * versionName "v1.1.2" + * + * 待测试上架版本: + * versionCode 9 + * versionName "v1.1.3" + * */ + versionCode 9 + versionName "v1.1.3" multiDexEnabled true } buildTypes { @@ -37,32 +46,50 @@ exclude 'META-INF/LGPL2.1' exclude 'META-INF/services/javax.annotation.processing.Processor' exclude 'META-INF/rxjava.properties' - exclude 'org/codehaus/jackson/impl/VERSION.txt' - exclude 'org/codehaus/jackson/map/VERSION.txt' +// exclude 'org/codehaus/jackson/impl/VERSION.txt' +// exclude 'org/codehaus/jackson/map/VERSION.txt' + } + + //导入aar包 + repositories { + flatDir { + dirs 'libs' + } } } dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') - implementation 'androidx.appcompat:appcompat:1.2.0' - implementation 'androidx.constraintlayout:constraintlayout:2.0.4' - implementation 'pub.devrel:easypermissions:1.3.0' - testImplementation 'junit:junit:4.12' - androidTestImplementation 'androidx.test:runner:1.2.0' - androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0' + //移动警务授权sdk implementation files('libs/OauthLoginJar_V1.0.jar') - implementation 'com.lbx:xTools:2.1.2' - implementation 'org.bouncycastle:bcmail-jdk15on:1.59' - implementation 'org.apache.commons:commons-lang3:3.1' - implementation 'com.alibaba:fastjson:1.2.68' - implementation files('libs/guava-17.0.jar') - implementation files('libs/androidsvg-1.2.2-beta-1.jar') + //山海易绘离线地图 implementation files('libs/EzMapServiceApiForAndroid-1.0.3.0.jar') implementation files('libs/EzRouterAPIForAndroid.v1.0.1.201206151022.jar') - implementation files('libs/jts-1.13.jar') - implementation files('libs/kxml2-2.3.0.jar') implementation files('libs/EzLicenseAPI4Android.jar') implementation files('libs/EzMapApiForAndnroid.3.1.0.2.jar') - implementation files('libs/jackson-core-lgpl-1.9.5.jar') - implementation files('libs/jackson-mapper-lgpl-1.9.5.jar') + //移动警务备案号sdk + implementation(name: 'libfriapkrecord-r1.0.1', ext: 'aar') + implementation 'androidx.appcompat:appcompat:1.2.0' + //Google申请手机相关权限官方库 + implementation group: 'pub.devrel', name: 'easypermissions', version: '3.0.0' + //Google官方Json解析 + implementation group: 'com.google.code.gson', name: 'gson', version: '2.8.6' +// implementation group: 'org.bouncycastle', name: 'bcmail-jdk15on', version: '1.68' + //公共帮助类 +// implementation group: 'org.apache.commons', name: 'commons-lang3', version: '3.1' + //阿里巴巴Json解析库 +// implementation group: 'com.alibaba', name: 'fastjson', version: '1.2.76' + //Google提供的一套工具类 +// implementation group: 'com.google.guava', name: 'guava', version: '30.1.1-jre' + //‎安卓SVG渲染库 +// implementation group: 'com.caverock', name: 'androidsvg', version: '1.4' + //JTS拓扑套件是用于建模和操纵二维线性几何形状的API +// implementation group: 'com.vividsolutions', name: 'jts', version: '1.13' + //Json解析 +// implementation group: 'org.codehaus.jackson', name: 'jackson-core-lgpl', version: '1.9.13' + //Jackson数据映射 +// implementation group: 'org.codehaus.jackson', name: 'jackson-mapper-lgpl', version: '1.9.13' + //xml解析 +// implementation group: 'net.sf.kxml', name: 'kxml2', version: '2.3.0' +// implementation 'com.lbx:xTools:2.1.2' } diff --git a/app/libs/androidsvg-1.2.2-beta-1.jar b/app/libs/androidsvg-1.2.2-beta-1.jar deleted file mode 100644 index aa69f00..0000000 --- a/app/libs/androidsvg-1.2.2-beta-1.jar +++ /dev/null Binary files differ diff --git a/app/libs/guava-17.0.jar b/app/libs/guava-17.0.jar deleted file mode 100644 index 661fc74..0000000 --- a/app/libs/guava-17.0.jar +++ /dev/null Binary files differ diff --git a/app/libs/jackson-core-lgpl-1.9.5.jar b/app/libs/jackson-core-lgpl-1.9.5.jar deleted file mode 100644 index 89dc160..0000000 --- a/app/libs/jackson-core-lgpl-1.9.5.jar +++ /dev/null Binary files differ diff --git a/app/libs/jackson-mapper-lgpl-1.9.5.jar b/app/libs/jackson-mapper-lgpl-1.9.5.jar deleted file mode 100644 index 095ffb3..0000000 --- a/app/libs/jackson-mapper-lgpl-1.9.5.jar +++ /dev/null Binary files differ diff --git a/app/libs/jts-1.13.jar b/app/libs/jts-1.13.jar deleted file mode 100644 index bbaa20b..0000000 --- a/app/libs/jts-1.13.jar +++ /dev/null Binary files differ diff --git a/app/libs/kxml2-2.3.0.jar b/app/libs/kxml2-2.3.0.jar deleted file mode 100644 index 6470952..0000000 --- a/app/libs/kxml2-2.3.0.jar +++ /dev/null Binary files differ diff --git a/app/libs/libfriapkrecord-r1.0.1.aar b/app/libs/libfriapkrecord-r1.0.1.aar new file mode 100644 index 0000000..ad69876 --- /dev/null +++ b/app/libs/libfriapkrecord-r1.0.1.aar Binary files differ diff --git a/app/src/androidTest/java/com/casic/smartwellapp/ExampleInstrumentedTest.java b/app/src/androidTest/java/com/casic/smartwellapp/ExampleInstrumentedTest.java deleted file mode 100644 index 3013492..0000000 --- a/app/src/androidTest/java/com/casic/smartwellapp/ExampleInstrumentedTest.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.casic.smartwellapp; - -import android.content.Context; - -import androidx.test.InstrumentationRegistry; -import androidx.test.runner.AndroidJUnit4; - -import org.junit.Test; -import org.junit.runner.RunWith; - -import static org.junit.Assert.*; - -/** - * Instrumented test, which will execute on an Android device. - * - * @see Testing documentation - */ -@RunWith(AndroidJUnit4.class) -public class ExampleInstrumentedTest { - @Test - public void useAppContext() { - // Context of the app under test. - Context appContext = InstrumentationRegistry.getTargetContext(); - - assertEquals("com.casic.smartwellapp", appContext.getPackageName()); - } -} diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 4eeda90..bc63fec 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -3,6 +3,9 @@ xmlns:tools="http://schemas.android.com/tools" package="com.casic.smartwellapp"> + @@ -20,22 +23,23 @@ - - - + + + diff --git a/app/src/main/assets/error.html b/app/src/main/assets/error.html index dcd365f..5abea9c 100644 --- a/app/src/main/assets/error.html +++ b/app/src/main/assets/error.html @@ -1,82 +1,90 @@ - - - - 404 - - - -
- -
-
- -
-
- 请检查网络后重试 -
- - - -
-
- - - + .text-area { + + height: 75px; + } + + .tips { + font-size: 25px; + line-height: 35px; + color: white; + text-align: center; + } + + .tips img { + width: 70%; + } + + .btn { + margin-top: 5%; + text-align: center; + } + + .btn button { + font-size: 30px; + padding: 10px 20px; + border-radius: 20px; + background-color: #ffee00; + color: #ff7700; + margin: 0 auto; + } + + .btn button:hover { + background-color: #ffbb00; + color: #ffff00; + } + + + +
+ +
+
+ +
+
+ 请检查网络后重试 +
+ + + +
+
+ + + diff --git a/app/src/main/assets/hello.html b/app/src/main/assets/hello.html index 5c45033..5fde805 100644 --- a/app/src/main/assets/hello.html +++ b/app/src/main/assets/hello.html @@ -1,64 +1,73 @@ - - - - 404 - - - -
-
- - + .airplane { + width: 50%; + margin: 20% 25% 10% 25%; + text-align: center; + } + + .text-area { + + height: 75px; + } + + .tips { + font-size: 25px; + line-height: 35px; + color: white; + text-align: center; + } + + .tips img { + width: 70%; + } + + .btn { + margin-top: 5%; + text-align: center; + } + + .btn button { + font-size: 30px; + padding: 10px 20px; + border-radius: 20px; + background-color: #ffee00; + color: #ff7700; + margin: 0 auto; + } + + .btn button:hover { + background-color: #ffbb00; + color: #ffff00; + } + + + +
+
+ + diff --git a/app/src/main/assets/index.html b/app/src/main/assets/index.html index d5b666a..1e55e53 100644 --- a/app/src/main/assets/index.html +++ b/app/src/main/assets/index.html @@ -1 +1,18 @@ -智能闸井
\ No newline at end of file + + + + + + + + 智能闸井 + + + +
+ + + + + diff --git a/app/src/main/assets/map.html b/app/src/main/assets/map.html index 6665800..d9f8d04 100644 --- a/app/src/main/assets/map.html +++ b/app/src/main/assets/map.html @@ -1,79 +1,79 @@ - - - - - - easyMap JavaScript API Example: simple + + + + + + easyMap JavaScript API Example: simple - - + + - - - -
- - - + var pIcon = new Icon(); // 构造一个图标类 + pIcon.image = "static/images/location.png"; + pIcon.height = 16; + pIcon.width = 16; + var strMsg = theRequest.pointname; + var marker = new Marker(centerP, pIcon); // 构造一个标记叠加对象 + uEzMap.addOverlay(marker); // 将标记叠加对象添加到地图中 + // 构造鹰眼对象 + var ov = new OverView(); + // 设置鹰眼的宽度,单位为像素px + ov.width = 200; + // 设置鹰眼的高度 + ov.height = 200; + // 添加鹰眼对象到地图对象中 + uEzMap.addOverView(ov); + } + + + diff --git a/app/src/main/java/com/casic/smartwellapp/Entity/Constant.java b/app/src/main/java/com/casic/smartwellapp/Entity/Constant.java index 66d61e1..99c2ff3 100644 --- a/app/src/main/java/com/casic/smartwellapp/Entity/Constant.java +++ b/app/src/main/java/com/casic/smartwellapp/Entity/Constant.java @@ -1,11 +1,9 @@ package com.casic.smartwellapp.Entity; import android.Manifest; -import android.os.Environment; public class Constant { - public static final String LICENSE_PATH = Environment.getExternalStorageDirectory() + "/PGIS/license/EzServiceClient4Android.lic"; - // public static final String LICENSE_PATH = "file:///android_asset/EzServiceClient4Android.lic"; public static final int PERMISSIONS_CODE = 11; - public static final String[] USER_PERMISSIONS = {Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE}; + public static final String[] USER_PERMISSIONS = {Manifest.permission.READ_EXTERNAL_STORAGE, + Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.READ_PHONE_STATE}; } diff --git a/app/src/main/java/com/casic/smartwellapp/Entity/Data.java b/app/src/main/java/com/casic/smartwellapp/Entity/Data.java index 317acb9..bd79a68 100644 --- a/app/src/main/java/com/casic/smartwellapp/Entity/Data.java +++ b/app/src/main/java/com/casic/smartwellapp/Entity/Data.java @@ -1,8 +1,8 @@ package com.casic.smartwellapp.Entity; public class Data { - String identityCard; - String name; + private String identityCard; + private String name; public String getIdentityCard() { return identityCard; diff --git a/app/src/main/java/com/casic/smartwellapp/Entity/DeviceData.java b/app/src/main/java/com/casic/smartwellapp/Entity/DeviceData.java index a17c74a..1f064c4 100644 --- a/app/src/main/java/com/casic/smartwellapp/Entity/DeviceData.java +++ b/app/src/main/java/com/casic/smartwellapp/Entity/DeviceData.java @@ -1,12 +1,12 @@ package com.casic.smartwellapp.Entity; public class DeviceData { - String name; - String card; - String yys; - String imei = ""; + private String name; + private String card; + private String yys; + private String imei; - public DeviceData(String name, String card, String yys,String imei) { + public DeviceData(String name, String card, String yys, String imei) { this.name = name; this.card = card; this.yys = yys; diff --git a/app/src/main/java/com/casic/smartwellapp/Entity/LoginReturn.java b/app/src/main/java/com/casic/smartwellapp/Entity/LoginReturn.java index 7ed1948..4f3d7c9 100644 --- a/app/src/main/java/com/casic/smartwellapp/Entity/LoginReturn.java +++ b/app/src/main/java/com/casic/smartwellapp/Entity/LoginReturn.java @@ -2,9 +2,9 @@ public class LoginReturn { - String code; - String msg; - Data data; + private String code; + private String msg; + private Data data; public String getCode() { return code; diff --git a/app/src/main/java/com/casic/smartwellapp/MainActivity.java b/app/src/main/java/com/casic/smartwellapp/MainActivity.java index b88eb70..98a6315 100644 --- a/app/src/main/java/com/casic/smartwellapp/MainActivity.java +++ b/app/src/main/java/com/casic/smartwellapp/MainActivity.java @@ -2,9 +2,9 @@ import android.Manifest; import android.annotation.SuppressLint; -import android.app.Activity; import android.content.Context; import android.content.Intent; +import android.content.pm.ApplicationInfo; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.net.Uri; @@ -23,12 +23,14 @@ import android.webkit.WebViewClient; import android.widget.Toast; -import androidx.annotation.RequiresApi; -import androidx.appcompat.app.AppCompatActivity; +import androidx.annotation.Nullable; import androidx.core.app.ActivityCompat; import com.casic.smartwellapp.Entity.DeviceData; import com.casic.smartwellapp.Entity.LoginReturn; +import com.casic.smartwellapp.base.BaseActivity; +import com.casic.smartwellapp.uitil.SaveKeyValues; +import com.fri.libfriapkrecord.read.SignRecordTools; import com.google.gson.Gson; import com.telecomyt.oauthlogin.bean.JiAnBaoCheckResult; import com.telecomyt.oauthlogin.http.HttpCallback; @@ -37,10 +39,13 @@ import java.lang.reflect.Method; import java.util.List; -import static com.telecomyt.oauthlogin.config.Config.LOG_TAG; +public class MainActivity extends BaseActivity { -public class MainActivity extends AppCompatActivity { + private static final String TAG = "MainActivity"; + private static final String oauth_url = "http://menhu.telecomyt.com.cn:8080/"; //单点登录验证地址 + private static final int LOGIN_CODE = 1001; + private static final int REQUEST_READ_PHONE_STATE = 1; private WebView webview; private String token;// token @@ -49,49 +54,28 @@ private String yys; //运营商 private LoginReturn userInfoResult = null; //单点登录返回的用户信息 private DeviceData deviceData = null; //给用户返回的数据 - - private static final String oauth_url = "http://menhu.telecomyt.com.cn:8080/"; //单点登录验证地址 - private long exitTime = 0; //点击退出时间 - - private static final int LOGIN_CODE = 1001; - public static final int REQUEST_READ_PHONE_STATE = 1; - private String msgId; //推送消息id private String msgContent; //推送消息内容 - @RequiresApi(api = Build.VERSION_CODES.KITKAT) @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setContentView(R.layout.activity_main); - try { - Intent intent = new Intent("com.telecomyt.portal.OAUTH"); - intent.putExtra("appID", "3pb316_oauth"); - intent.putExtra("version", "v1"); - startActivityForResult(intent, 1001);//REQUEST_CODE:为自己定义的回调的代码标记。 - } catch (Exception e) { - Toast.makeText(MainActivity.this, "请先安装警务门户", Toast.LENGTH_SHORT).show(); - Log.e(LOG_TAG, "请先安装警务门户"); - } + public int initLayoutView() { + return R.layout.activity_main; + } -// imei = getIMEI(getApplicationContext()); -// imei = getDeviceId(MainActivity.this); + @Override + public void initDataWithState(@Nullable Bundle savedInstanceState) { + + } + + @Override + public void initData() { imei = obtainSimCardSerialNumber();//20210524 Pengxh修改 - -// if (getIntent() != null) { -//// Intent intent = getIntent(); -//// msgId = intent.getStringExtra("id"); -//// msgContent = intent.getStringExtra("content"); -//// Toast.makeText(MainActivity.this,msgContent,Toast.LENGTH_SHORT).show(); -//// Log.e("push",msgContent); -//// } - - //webview + Log.d(TAG, "imei === " + imei); + obtainRecordNumber();//20210813 Pengxh修改 // 获取控件对象 - webview = findViewById(R.id.WV_ID); + webview = findViewById(R.id.webView); WebView.setWebContentsDebuggingEnabled(true); - WebSettings settings = webview.getSettings(); settings.setJavaScriptEnabled(true);//设置webView属性,允许运行js脚本 settings.setDomStorageEnabled(true); @@ -101,7 +85,19 @@ settings.setAllowFileAccess(true);//可访问文件 settings.setDefaultTextEncodingName("UTF-8"); settings.setAllowUniversalAccessFromFileURLs(true); + } + @Override + public void initEvent() { + try { + Intent intent = new Intent("com.telecomyt.portal.OAUTH"); + intent.putExtra("appID", "3pb316_oauth"); + intent.putExtra("version", "v1"); + startActivityForResult(intent, 1001);//REQUEST_CODE:为自己定义的回调的代码标记。 + } catch (Exception e) { + Toast.makeText(MainActivity.this, "请先安装警务门户", Toast.LENGTH_SHORT).show(); + Log.d(TAG, "onCreate-->请先安装警务门户"); + } // 设置在当前WebView继续加载网页 webview.setWebViewClient(new WebViewClient() { @Override @@ -110,13 +106,13 @@ // 处理自定义scheme协议 if (!url.startsWith("http")) { //处理自定义scheme-->androidamap://viewMap?poiname=W00002&lat=39.9055035111111&lng=116.376759027778 - Log.e("scheme", "处理自定义scheme-->" + url); + Log.d(TAG, "处理自定义scheme-->" + url); // 如果要跳转地图 if (url.startsWith("androidamap:")) { String lat = "", lng = "", pointname = ""; //获取问号后的参数 String params = url.substring(url.indexOf('?')); - Log.i("map", params); + Log.d(TAG, "问号后的参数 === " + params); if (url.contains("?")) { String str = params.substring(1); String[] strs = str.split("&"); @@ -161,10 +157,8 @@ } public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) { - //handler.cancel(); 默认的处理方式,WebView变成空白页 //接受证书 handler.proceed(); - //handleMessage(Message msg); 其他处理 } @Override @@ -176,7 +170,6 @@ }); // 给web提供调用接口 webview.addJavascriptInterface(new WebAppInterface(), "android"); - // 加载html文件,欢迎页面 webview.loadUrl("file:///android_asset/hello.html"); } @@ -201,12 +194,12 @@ if (requestCode == 1001) { if (data != null) { String result = data.getStringExtra("result"); - Log.e(LOG_TAG, "吉安宝验证结果 result === " + result); + Log.d(TAG, "吉安宝验证结果 result === " + result); JiAnBaoCheckResult tokenResult = new Gson().fromJson(result, JiAnBaoCheckResult.class); if (tokenResult != null) { if (tokenResult.isResult()) { token = tokenResult.getSubjectDN(); - Log.e(LOG_TAG, "token === " + token); + Log.d(TAG, "token === " + token); // webview.loadUrl("file:///android_asset/index.html?token="+token); if (!TextUtils.isEmpty(token)) { HttpOauthCheckUtil.getInstance().getUserInfo(oauth_url, token, new HttpCallback() { @@ -214,19 +207,19 @@ public void onSuccess(String result) { Toast.makeText(getApplicationContext(), "认证通过,欢迎使用", Toast.LENGTH_SHORT).show(); - Log.e(LOG_TAG, "门户验证结果 === " + result); + Log.d(TAG, "门户验证结果 === " + result); userInfoResult = new Gson().fromJson(result, LoginReturn.class); yys = getYys(getApplicationContext()); String name = userInfoResult.getData().getName(); String identifyCard = userInfoResult.getData().getIdentityCard(); deviceData = new DeviceData(name, identifyCard, yys, imei); - Log.i("deviceData", deviceData.toString()); + Log.d(TAG, "deviceData === " + deviceData.toString()); webview.loadUrl("file:///android_asset/index.html"); } @Override public void onFailed(String err) { - Log.e(LOG_TAG, "错误信息 === " + err); + Log.d(TAG, "错误信息 === " + err); Toast.makeText(getApplicationContext(), err, Toast.LENGTH_SHORT).show(); } @@ -236,38 +229,24 @@ //吉安宝认证失败 Toast.makeText(getApplicationContext(), "吉安宝认证失败", Toast.LENGTH_SHORT).show(); - Log.e(LOG_TAG, "吉安宝认证失败 "); + Log.d(TAG, "吉安宝认证失败 "); } } else { Toast.makeText(getApplicationContext(), "请检查网络", Toast.LENGTH_SHORT).show(); - Log.e(LOG_TAG, "请检查网络"); + Log.d(TAG, "请检查网络"); } } } } -// if (requestCode == LOGIN_CODE && resultCode == 100) { // resultCode 固定为100 -// String result = intent.getStringExtra("result"); -// //result为json格式字符串,其中 result: true 为认证成功,false为失败;code: 错误代码 -// // TODO:解析result -// LoginReturn loginReturn = JSON.parseObject(result, LoginReturn.class); -// if(loginReturn.isResult()){//如果result是true -// this.token = loginReturn.getSubjectDN();//token -// }else{ -// -// } -// Log.i("ActivityResult", "onActivityResult: " + result); -// } -// super.onActivityResult(requestCode, resultCode, intent); } - //我们需要重写回退按钮的时间,当用户点击回退按钮: //1.webView.canGoBack()判断网页是否能后退,可以则goback() //2.如果不可以连续点击两次退出App,否则弹出提示Toast @Override public void onBackPressed() { - Log.i("webUrl", "webviewUrl" + webview.getUrl()); + Log.d(TAG, "onBackPressed === " + webview.getUrl()); if (webview.canGoBack() && !webview.getUrl().endsWith("/#/") && !webview.getUrl().endsWith("/#/login")) { webview.goBack(); } else { @@ -285,7 +264,7 @@ public String getUser() { if (deviceData != null) { String json = new Gson().toJson(deviceData); - Log.i("JSON:", json); + Log.d(TAG, "json === " + json); return json; } else { return ""; @@ -302,6 +281,12 @@ return null; } } + + //提供JS调用Android接口方法 + @JavascriptInterface + public String readRecordNumber() { + return (String) SaveKeyValues.getValue("RecordNumber", ""); + } } //获取运营商 @@ -322,38 +307,10 @@ default: } } - Log.i("yys", "yys:" + yys); -// Toast.makeText(context, "运营商:"+yys, Toast.LENGTH_SHORT).show(); + Log.d(TAG, "运营商 === " + yys); return yys; } - public String getIMEI(Context context) { - TelephonyManager telephonyManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); - @SuppressLint("MissingPermission") String imei = telephonyManager.getDeviceId(); - Log.i("imei", "yys:" + imei); - Toast.makeText(context, "imei:" + imei, Toast.LENGTH_SHORT).show(); - return imei; - } - - @SuppressLint("HardwareIds") - public static String getDeviceId(Context context) { - String deviceId = ""; - TelephonyManager tm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE); - if (null != tm) { - if (ActivityCompat.checkSelfPermission(context, Manifest.permission.READ_PHONE_STATE) != PackageManager.PERMISSION_GRANTED) { - ActivityCompat.requestPermissions((Activity) context, new String[]{Manifest.permission.READ_PHONE_STATE}, REQUEST_READ_PHONE_STATE); - } else { - if (tm.getDeviceId() != null) { - deviceId = tm.getDeviceId(); - } else { - deviceId = Settings.Secure.getString(context.getApplicationContext().getContentResolver(), Settings.Secure.ANDROID_ID); - } - } - Log.d("deviceId--->", "deviceId:" + deviceId); - } - return deviceId; - } - //获取SimSerialNumber @SuppressLint({"HardwareIds"}) public String obtainSimCardSerialNumber() { @@ -367,6 +324,7 @@ telephonyClass = Class.forName(telephony.getClass().getName()); if (ActivityCompat.checkSelfPermission(this, Manifest.permission.READ_PHONE_STATE) != PackageManager.PERMISSION_GRANTED) { ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.READ_PHONE_STATE}, REQUEST_READ_PHONE_STATE); + return ""; } //Android 10以下默认获取deviceId,部分手机获取不到deviceId不到的改为获取sim卡串码,如果依旧获取不到,返回"" String imei = telephony.getDeviceId(); @@ -386,5 +344,16 @@ } return ""; } + + //根据移动警务要求,增加备案号获取sdk + private void obtainRecordNumber() { + ApplicationInfo appInfo = getApplicationInfo(); + if (appInfo == null) { + return; + } + String number = SignRecordTools.readNumbers(appInfo.sourceDir); + Log.d(TAG, "全国注册备案号: " + number); + SaveKeyValues.putValue("RecordNumber", number); + } } diff --git a/app/src/main/java/com/casic/smartwellapp/MapInitActivity.java b/app/src/main/java/com/casic/smartwellapp/MapInitActivity.java index 9cc84e9..a4f4d04 100644 --- a/app/src/main/java/com/casic/smartwellapp/MapInitActivity.java +++ b/app/src/main/java/com/casic/smartwellapp/MapInitActivity.java @@ -1,11 +1,13 @@ package com.casic.smartwellapp; -import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.os.Environment; import android.widget.TextView; +import androidx.annotation.Nullable; + +import com.casic.smartwellapp.base.BaseActivity; import com.easymap.android.maps.v3.EzMap; import com.easymap.android.maps.v3.MapView; import com.easymap.android.maps.v3.geometry.GeoPoint; @@ -20,7 +22,7 @@ import java.io.IOException; import java.io.InputStream; -public class MapInitActivity extends Activity implements EzMap.OnStatusChangeListener { +public class MapInitActivity extends BaseActivity implements EzMap.OnStatusChangeListener { private static final String TAG = "MapInitActivity"; private MapView mapView; @@ -29,9 +31,12 @@ private String pointname; @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setContentView(R.layout.activity_map_init); + public int initLayoutView() { + return R.layout.activity_map_init; + } + + @Override + public void initDataWithState(@Nullable Bundle savedInstanceState) { Intent i = getIntent(); lng = i.getStringExtra("lng"); lat = i.getStringExtra("lat"); @@ -51,6 +56,16 @@ } @Override + public void initData() { + + } + + @Override + public void initEvent() { + + } + + @Override public void onStatusChanged(STATUS arg0) { TextView textview = findViewById(R.id.textview); textview.setText(pointname); diff --git a/app/src/main/java/com/casic/smartwellapp/PermissionActivity.java b/app/src/main/java/com/casic/smartwellapp/PermissionActivity.java index 93d32f1..8d54f74 100644 --- a/app/src/main/java/com/casic/smartwellapp/PermissionActivity.java +++ b/app/src/main/java/com/casic/smartwellapp/PermissionActivity.java @@ -1,7 +1,6 @@ package com.casic.smartwellapp; import android.content.Intent; -import android.os.Build; import android.os.Bundle; import android.util.Log; @@ -23,15 +22,10 @@ @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); - //判断是否有权限,如果版本大于5.1才需要判断(即6.0以上),其他则不需要判断。 - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { - if (EasyPermissions.hasPermissions(this, Constant.USER_PERMISSIONS)) { - startMainActivity(); - } else { - EasyPermissions.requestPermissions(this, "需要获取相关权限", Constant.PERMISSIONS_CODE, Constant.USER_PERMISSIONS); - } - } else { + if (EasyPermissions.hasPermissions(this, Constant.USER_PERMISSIONS)) { startMainActivity(); + } else { + EasyPermissions.requestPermissions(this, "需要获取相关权限", Constant.PERMISSIONS_CODE, Constant.USER_PERMISSIONS); } } diff --git a/app/src/main/java/com/casic/smartwellapp/base/BaseActivity.java b/app/src/main/java/com/casic/smartwellapp/base/BaseActivity.java new file mode 100644 index 0000000..1cb0e54 --- /dev/null +++ b/app/src/main/java/com/casic/smartwellapp/base/BaseActivity.java @@ -0,0 +1,38 @@ +package com.casic.smartwellapp.base; + +import android.os.Bundle; + +import androidx.annotation.Nullable; +import androidx.appcompat.app.AppCompatActivity; + +public abstract class BaseActivity extends AppCompatActivity { + + @Override + protected void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(initLayoutView()); + initDataWithState(savedInstanceState); + initData(); + initEvent(); + } + + /** + * 初始化xml布局 + */ + public abstract int initLayoutView(); + + /** + * 初始化默认数据 + */ + public abstract void initData(); + + /** + * 初始化默认数据 + */ + public abstract void initDataWithState(@Nullable Bundle savedInstanceState); + + /** + * 初始化业务逻辑 + */ + public abstract void initEvent(); +} diff --git a/app/src/main/java/com/casic/smartwellapp/base/BaseApplication.java b/app/src/main/java/com/casic/smartwellapp/base/BaseApplication.java new file mode 100644 index 0000000..ad3432c --- /dev/null +++ b/app/src/main/java/com/casic/smartwellapp/base/BaseApplication.java @@ -0,0 +1,31 @@ +package com.casic.smartwellapp.base; + +import android.app.Application; + +import com.casic.smartwellapp.uitil.SaveKeyValues; + +public class BaseApplication extends Application { + + private volatile static BaseApplication instance; + + @Override + public void onCreate() { + super.onCreate(); + instance = this; + SaveKeyValues.initSharedPreferences(this); + } + + /** + * 双重锁单例 + */ + public static BaseApplication getInstance() { + if (instance == null) { + synchronized (BaseApplication.class) { + if (instance == null) { + instance = new BaseApplication(); + } + } + } + return instance; + } +} diff --git a/app/src/main/java/com/casic/smartwellapp/uitil/SaveKeyValues.java b/app/src/main/java/com/casic/smartwellapp/uitil/SaveKeyValues.java new file mode 100644 index 0000000..8995201 --- /dev/null +++ b/app/src/main/java/com/casic/smartwellapp/uitil/SaveKeyValues.java @@ -0,0 +1,85 @@ +package com.casic.smartwellapp.uitil; + +import android.annotation.SuppressLint; +import android.content.Context; +import android.content.SharedPreferences; + +public class SaveKeyValues { + private static final String TAG = "SaveKeyValues"; + @SuppressLint({"StaticFieldLeak"}) + private static Context context; + private static String fileName; + + public static void initSharedPreferences(Context mContext) { + context = mContext.getApplicationContext(); + String packageName = context.getPackageName(); + //获取到的包名带有“.”方便命名,取最后一个作为sp文件名,例如:com.casic.smartwellapp + String[] split = packageName.split("\\.");//先转义.之后才能分割 + fileName = split[split.length - 1]; + } + + /** + * 存储 + */ + public static void putValue(String key, Object object) { + SharedPreferences sharedPreferences = context.getSharedPreferences(fileName, Context.MODE_PRIVATE); + SharedPreferences.Editor editor = sharedPreferences.edit(); + if (object instanceof String) { + editor.putString(key, (String) object).apply(); + } else if (object instanceof Integer) { + editor.putInt(key, (Integer) object); + } else if (object instanceof Boolean) { + editor.putBoolean(key, (Boolean) object).apply(); + } else if (object instanceof Float) { + editor.putFloat(key, (Float) object).apply(); + } else if (object instanceof Long) { + editor.putLong(key, (Long) object).apply(); + } else { + editor.putString(key, object.toString()).apply(); + } + } + + /** + * 获取保存的数据 + */ + public static Object getValue(String key, Object defaultObject) { + SharedPreferences sharedPreferences = context.getSharedPreferences(fileName, Context.MODE_PRIVATE); + if (defaultObject instanceof String) { + return sharedPreferences.getString(key, (String) defaultObject); + } else if (defaultObject instanceof Integer) { + return sharedPreferences.getInt(key, (Integer) defaultObject); + } else if (defaultObject instanceof Boolean) { + return sharedPreferences.getBoolean(key, (Boolean) defaultObject); + } else if (defaultObject instanceof Float) { + return sharedPreferences.getFloat(key, (Float) defaultObject); + } else if (defaultObject instanceof Long) { + return sharedPreferences.getLong(key, (Long) defaultObject); + } else { + return sharedPreferences.getString(key, null); + } + } + + /** + * 移除某个key值已经对应的值 + */ + public static void removeKey(String key) { + SharedPreferences sharedPreferences = context.getSharedPreferences(fileName, Context.MODE_PRIVATE); + sharedPreferences.edit().remove(key).apply(); + } + + /** + * 清除所有数据 + */ + public static void clearAll() { + SharedPreferences sharedPreferences = context.getSharedPreferences(fileName, Context.MODE_PRIVATE); + sharedPreferences.edit().clear().apply(); + } + + /** + * 查询某个key是否存在 + */ + public static boolean containsKey(String key) { + SharedPreferences sharedPreferences = context.getSharedPreferences(fileName, Context.MODE_PRIVATE); + return sharedPreferences.contains(key); + } +} diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index e70c01e..eadc9d7 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -1,15 +1,13 @@ - + android:layout_height="match_parent" /> - \ No newline at end of file + \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index 0614b2f..5ec7f4d 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,15 +1,24 @@ apply plugin: 'com.android.application' android { - compileSdkVersion 29 - buildToolsVersion "29.0.3" + compileSdkVersion 30 + buildToolsVersion "30.0.3" defaultConfig { applicationId "com.casic.smartwellapp" - minSdkVersion 17 - targetSdkVersion 29 - versionCode 8 - versionName "v1.1.2" - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + //备案号sdk版本要求最低24 + minSdkVersion 24 + targetSdkVersion 30 + /** + * 使用中版本如下: + * versionCode 8 + * versionName "v1.1.2" + * + * 待测试上架版本: + * versionCode 9 + * versionName "v1.1.3" + * */ + versionCode 9 + versionName "v1.1.3" multiDexEnabled true } buildTypes { @@ -37,32 +46,50 @@ exclude 'META-INF/LGPL2.1' exclude 'META-INF/services/javax.annotation.processing.Processor' exclude 'META-INF/rxjava.properties' - exclude 'org/codehaus/jackson/impl/VERSION.txt' - exclude 'org/codehaus/jackson/map/VERSION.txt' +// exclude 'org/codehaus/jackson/impl/VERSION.txt' +// exclude 'org/codehaus/jackson/map/VERSION.txt' + } + + //导入aar包 + repositories { + flatDir { + dirs 'libs' + } } } dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') - implementation 'androidx.appcompat:appcompat:1.2.0' - implementation 'androidx.constraintlayout:constraintlayout:2.0.4' - implementation 'pub.devrel:easypermissions:1.3.0' - testImplementation 'junit:junit:4.12' - androidTestImplementation 'androidx.test:runner:1.2.0' - androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0' + //移动警务授权sdk implementation files('libs/OauthLoginJar_V1.0.jar') - implementation 'com.lbx:xTools:2.1.2' - implementation 'org.bouncycastle:bcmail-jdk15on:1.59' - implementation 'org.apache.commons:commons-lang3:3.1' - implementation 'com.alibaba:fastjson:1.2.68' - implementation files('libs/guava-17.0.jar') - implementation files('libs/androidsvg-1.2.2-beta-1.jar') + //山海易绘离线地图 implementation files('libs/EzMapServiceApiForAndroid-1.0.3.0.jar') implementation files('libs/EzRouterAPIForAndroid.v1.0.1.201206151022.jar') - implementation files('libs/jts-1.13.jar') - implementation files('libs/kxml2-2.3.0.jar') implementation files('libs/EzLicenseAPI4Android.jar') implementation files('libs/EzMapApiForAndnroid.3.1.0.2.jar') - implementation files('libs/jackson-core-lgpl-1.9.5.jar') - implementation files('libs/jackson-mapper-lgpl-1.9.5.jar') + //移动警务备案号sdk + implementation(name: 'libfriapkrecord-r1.0.1', ext: 'aar') + implementation 'androidx.appcompat:appcompat:1.2.0' + //Google申请手机相关权限官方库 + implementation group: 'pub.devrel', name: 'easypermissions', version: '3.0.0' + //Google官方Json解析 + implementation group: 'com.google.code.gson', name: 'gson', version: '2.8.6' +// implementation group: 'org.bouncycastle', name: 'bcmail-jdk15on', version: '1.68' + //公共帮助类 +// implementation group: 'org.apache.commons', name: 'commons-lang3', version: '3.1' + //阿里巴巴Json解析库 +// implementation group: 'com.alibaba', name: 'fastjson', version: '1.2.76' + //Google提供的一套工具类 +// implementation group: 'com.google.guava', name: 'guava', version: '30.1.1-jre' + //‎安卓SVG渲染库 +// implementation group: 'com.caverock', name: 'androidsvg', version: '1.4' + //JTS拓扑套件是用于建模和操纵二维线性几何形状的API +// implementation group: 'com.vividsolutions', name: 'jts', version: '1.13' + //Json解析 +// implementation group: 'org.codehaus.jackson', name: 'jackson-core-lgpl', version: '1.9.13' + //Jackson数据映射 +// implementation group: 'org.codehaus.jackson', name: 'jackson-mapper-lgpl', version: '1.9.13' + //xml解析 +// implementation group: 'net.sf.kxml', name: 'kxml2', version: '2.3.0' +// implementation 'com.lbx:xTools:2.1.2' } diff --git a/app/libs/androidsvg-1.2.2-beta-1.jar b/app/libs/androidsvg-1.2.2-beta-1.jar deleted file mode 100644 index aa69f00..0000000 --- a/app/libs/androidsvg-1.2.2-beta-1.jar +++ /dev/null Binary files differ diff --git a/app/libs/guava-17.0.jar b/app/libs/guava-17.0.jar deleted file mode 100644 index 661fc74..0000000 --- a/app/libs/guava-17.0.jar +++ /dev/null Binary files differ diff --git a/app/libs/jackson-core-lgpl-1.9.5.jar b/app/libs/jackson-core-lgpl-1.9.5.jar deleted file mode 100644 index 89dc160..0000000 --- a/app/libs/jackson-core-lgpl-1.9.5.jar +++ /dev/null Binary files differ diff --git a/app/libs/jackson-mapper-lgpl-1.9.5.jar b/app/libs/jackson-mapper-lgpl-1.9.5.jar deleted file mode 100644 index 095ffb3..0000000 --- a/app/libs/jackson-mapper-lgpl-1.9.5.jar +++ /dev/null Binary files differ diff --git a/app/libs/jts-1.13.jar b/app/libs/jts-1.13.jar deleted file mode 100644 index bbaa20b..0000000 --- a/app/libs/jts-1.13.jar +++ /dev/null Binary files differ diff --git a/app/libs/kxml2-2.3.0.jar b/app/libs/kxml2-2.3.0.jar deleted file mode 100644 index 6470952..0000000 --- a/app/libs/kxml2-2.3.0.jar +++ /dev/null Binary files differ diff --git a/app/libs/libfriapkrecord-r1.0.1.aar b/app/libs/libfriapkrecord-r1.0.1.aar new file mode 100644 index 0000000..ad69876 --- /dev/null +++ b/app/libs/libfriapkrecord-r1.0.1.aar Binary files differ diff --git a/app/src/androidTest/java/com/casic/smartwellapp/ExampleInstrumentedTest.java b/app/src/androidTest/java/com/casic/smartwellapp/ExampleInstrumentedTest.java deleted file mode 100644 index 3013492..0000000 --- a/app/src/androidTest/java/com/casic/smartwellapp/ExampleInstrumentedTest.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.casic.smartwellapp; - -import android.content.Context; - -import androidx.test.InstrumentationRegistry; -import androidx.test.runner.AndroidJUnit4; - -import org.junit.Test; -import org.junit.runner.RunWith; - -import static org.junit.Assert.*; - -/** - * Instrumented test, which will execute on an Android device. - * - * @see Testing documentation - */ -@RunWith(AndroidJUnit4.class) -public class ExampleInstrumentedTest { - @Test - public void useAppContext() { - // Context of the app under test. - Context appContext = InstrumentationRegistry.getTargetContext(); - - assertEquals("com.casic.smartwellapp", appContext.getPackageName()); - } -} diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 4eeda90..bc63fec 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -3,6 +3,9 @@ xmlns:tools="http://schemas.android.com/tools" package="com.casic.smartwellapp"> + @@ -20,22 +23,23 @@ - - - + + + diff --git a/app/src/main/assets/error.html b/app/src/main/assets/error.html index dcd365f..5abea9c 100644 --- a/app/src/main/assets/error.html +++ b/app/src/main/assets/error.html @@ -1,82 +1,90 @@ - - - - 404 - - - -
- -
-
- -
-
- 请检查网络后重试 -
- - - -
-
- - - + .text-area { + + height: 75px; + } + + .tips { + font-size: 25px; + line-height: 35px; + color: white; + text-align: center; + } + + .tips img { + width: 70%; + } + + .btn { + margin-top: 5%; + text-align: center; + } + + .btn button { + font-size: 30px; + padding: 10px 20px; + border-radius: 20px; + background-color: #ffee00; + color: #ff7700; + margin: 0 auto; + } + + .btn button:hover { + background-color: #ffbb00; + color: #ffff00; + } + + + +
+ +
+
+ +
+
+ 请检查网络后重试 +
+ + + +
+
+ + + diff --git a/app/src/main/assets/hello.html b/app/src/main/assets/hello.html index 5c45033..5fde805 100644 --- a/app/src/main/assets/hello.html +++ b/app/src/main/assets/hello.html @@ -1,64 +1,73 @@ - - - - 404 - - - -
-
- - + .airplane { + width: 50%; + margin: 20% 25% 10% 25%; + text-align: center; + } + + .text-area { + + height: 75px; + } + + .tips { + font-size: 25px; + line-height: 35px; + color: white; + text-align: center; + } + + .tips img { + width: 70%; + } + + .btn { + margin-top: 5%; + text-align: center; + } + + .btn button { + font-size: 30px; + padding: 10px 20px; + border-radius: 20px; + background-color: #ffee00; + color: #ff7700; + margin: 0 auto; + } + + .btn button:hover { + background-color: #ffbb00; + color: #ffff00; + } + + + +
+
+ + diff --git a/app/src/main/assets/index.html b/app/src/main/assets/index.html index d5b666a..1e55e53 100644 --- a/app/src/main/assets/index.html +++ b/app/src/main/assets/index.html @@ -1 +1,18 @@ -智能闸井
\ No newline at end of file + + + + + + + + 智能闸井 + + + +
+ + + + + diff --git a/app/src/main/assets/map.html b/app/src/main/assets/map.html index 6665800..d9f8d04 100644 --- a/app/src/main/assets/map.html +++ b/app/src/main/assets/map.html @@ -1,79 +1,79 @@ - - - - - - easyMap JavaScript API Example: simple + + + + + + easyMap JavaScript API Example: simple - - + + - - - -
- - - + var pIcon = new Icon(); // 构造一个图标类 + pIcon.image = "static/images/location.png"; + pIcon.height = 16; + pIcon.width = 16; + var strMsg = theRequest.pointname; + var marker = new Marker(centerP, pIcon); // 构造一个标记叠加对象 + uEzMap.addOverlay(marker); // 将标记叠加对象添加到地图中 + // 构造鹰眼对象 + var ov = new OverView(); + // 设置鹰眼的宽度,单位为像素px + ov.width = 200; + // 设置鹰眼的高度 + ov.height = 200; + // 添加鹰眼对象到地图对象中 + uEzMap.addOverView(ov); + } + + + diff --git a/app/src/main/java/com/casic/smartwellapp/Entity/Constant.java b/app/src/main/java/com/casic/smartwellapp/Entity/Constant.java index 66d61e1..99c2ff3 100644 --- a/app/src/main/java/com/casic/smartwellapp/Entity/Constant.java +++ b/app/src/main/java/com/casic/smartwellapp/Entity/Constant.java @@ -1,11 +1,9 @@ package com.casic.smartwellapp.Entity; import android.Manifest; -import android.os.Environment; public class Constant { - public static final String LICENSE_PATH = Environment.getExternalStorageDirectory() + "/PGIS/license/EzServiceClient4Android.lic"; - // public static final String LICENSE_PATH = "file:///android_asset/EzServiceClient4Android.lic"; public static final int PERMISSIONS_CODE = 11; - public static final String[] USER_PERMISSIONS = {Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE}; + public static final String[] USER_PERMISSIONS = {Manifest.permission.READ_EXTERNAL_STORAGE, + Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.READ_PHONE_STATE}; } diff --git a/app/src/main/java/com/casic/smartwellapp/Entity/Data.java b/app/src/main/java/com/casic/smartwellapp/Entity/Data.java index 317acb9..bd79a68 100644 --- a/app/src/main/java/com/casic/smartwellapp/Entity/Data.java +++ b/app/src/main/java/com/casic/smartwellapp/Entity/Data.java @@ -1,8 +1,8 @@ package com.casic.smartwellapp.Entity; public class Data { - String identityCard; - String name; + private String identityCard; + private String name; public String getIdentityCard() { return identityCard; diff --git a/app/src/main/java/com/casic/smartwellapp/Entity/DeviceData.java b/app/src/main/java/com/casic/smartwellapp/Entity/DeviceData.java index a17c74a..1f064c4 100644 --- a/app/src/main/java/com/casic/smartwellapp/Entity/DeviceData.java +++ b/app/src/main/java/com/casic/smartwellapp/Entity/DeviceData.java @@ -1,12 +1,12 @@ package com.casic.smartwellapp.Entity; public class DeviceData { - String name; - String card; - String yys; - String imei = ""; + private String name; + private String card; + private String yys; + private String imei; - public DeviceData(String name, String card, String yys,String imei) { + public DeviceData(String name, String card, String yys, String imei) { this.name = name; this.card = card; this.yys = yys; diff --git a/app/src/main/java/com/casic/smartwellapp/Entity/LoginReturn.java b/app/src/main/java/com/casic/smartwellapp/Entity/LoginReturn.java index 7ed1948..4f3d7c9 100644 --- a/app/src/main/java/com/casic/smartwellapp/Entity/LoginReturn.java +++ b/app/src/main/java/com/casic/smartwellapp/Entity/LoginReturn.java @@ -2,9 +2,9 @@ public class LoginReturn { - String code; - String msg; - Data data; + private String code; + private String msg; + private Data data; public String getCode() { return code; diff --git a/app/src/main/java/com/casic/smartwellapp/MainActivity.java b/app/src/main/java/com/casic/smartwellapp/MainActivity.java index b88eb70..98a6315 100644 --- a/app/src/main/java/com/casic/smartwellapp/MainActivity.java +++ b/app/src/main/java/com/casic/smartwellapp/MainActivity.java @@ -2,9 +2,9 @@ import android.Manifest; import android.annotation.SuppressLint; -import android.app.Activity; import android.content.Context; import android.content.Intent; +import android.content.pm.ApplicationInfo; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.net.Uri; @@ -23,12 +23,14 @@ import android.webkit.WebViewClient; import android.widget.Toast; -import androidx.annotation.RequiresApi; -import androidx.appcompat.app.AppCompatActivity; +import androidx.annotation.Nullable; import androidx.core.app.ActivityCompat; import com.casic.smartwellapp.Entity.DeviceData; import com.casic.smartwellapp.Entity.LoginReturn; +import com.casic.smartwellapp.base.BaseActivity; +import com.casic.smartwellapp.uitil.SaveKeyValues; +import com.fri.libfriapkrecord.read.SignRecordTools; import com.google.gson.Gson; import com.telecomyt.oauthlogin.bean.JiAnBaoCheckResult; import com.telecomyt.oauthlogin.http.HttpCallback; @@ -37,10 +39,13 @@ import java.lang.reflect.Method; import java.util.List; -import static com.telecomyt.oauthlogin.config.Config.LOG_TAG; +public class MainActivity extends BaseActivity { -public class MainActivity extends AppCompatActivity { + private static final String TAG = "MainActivity"; + private static final String oauth_url = "http://menhu.telecomyt.com.cn:8080/"; //单点登录验证地址 + private static final int LOGIN_CODE = 1001; + private static final int REQUEST_READ_PHONE_STATE = 1; private WebView webview; private String token;// token @@ -49,49 +54,28 @@ private String yys; //运营商 private LoginReturn userInfoResult = null; //单点登录返回的用户信息 private DeviceData deviceData = null; //给用户返回的数据 - - private static final String oauth_url = "http://menhu.telecomyt.com.cn:8080/"; //单点登录验证地址 - private long exitTime = 0; //点击退出时间 - - private static final int LOGIN_CODE = 1001; - public static final int REQUEST_READ_PHONE_STATE = 1; - private String msgId; //推送消息id private String msgContent; //推送消息内容 - @RequiresApi(api = Build.VERSION_CODES.KITKAT) @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setContentView(R.layout.activity_main); - try { - Intent intent = new Intent("com.telecomyt.portal.OAUTH"); - intent.putExtra("appID", "3pb316_oauth"); - intent.putExtra("version", "v1"); - startActivityForResult(intent, 1001);//REQUEST_CODE:为自己定义的回调的代码标记。 - } catch (Exception e) { - Toast.makeText(MainActivity.this, "请先安装警务门户", Toast.LENGTH_SHORT).show(); - Log.e(LOG_TAG, "请先安装警务门户"); - } + public int initLayoutView() { + return R.layout.activity_main; + } -// imei = getIMEI(getApplicationContext()); -// imei = getDeviceId(MainActivity.this); + @Override + public void initDataWithState(@Nullable Bundle savedInstanceState) { + + } + + @Override + public void initData() { imei = obtainSimCardSerialNumber();//20210524 Pengxh修改 - -// if (getIntent() != null) { -//// Intent intent = getIntent(); -//// msgId = intent.getStringExtra("id"); -//// msgContent = intent.getStringExtra("content"); -//// Toast.makeText(MainActivity.this,msgContent,Toast.LENGTH_SHORT).show(); -//// Log.e("push",msgContent); -//// } - - //webview + Log.d(TAG, "imei === " + imei); + obtainRecordNumber();//20210813 Pengxh修改 // 获取控件对象 - webview = findViewById(R.id.WV_ID); + webview = findViewById(R.id.webView); WebView.setWebContentsDebuggingEnabled(true); - WebSettings settings = webview.getSettings(); settings.setJavaScriptEnabled(true);//设置webView属性,允许运行js脚本 settings.setDomStorageEnabled(true); @@ -101,7 +85,19 @@ settings.setAllowFileAccess(true);//可访问文件 settings.setDefaultTextEncodingName("UTF-8"); settings.setAllowUniversalAccessFromFileURLs(true); + } + @Override + public void initEvent() { + try { + Intent intent = new Intent("com.telecomyt.portal.OAUTH"); + intent.putExtra("appID", "3pb316_oauth"); + intent.putExtra("version", "v1"); + startActivityForResult(intent, 1001);//REQUEST_CODE:为自己定义的回调的代码标记。 + } catch (Exception e) { + Toast.makeText(MainActivity.this, "请先安装警务门户", Toast.LENGTH_SHORT).show(); + Log.d(TAG, "onCreate-->请先安装警务门户"); + } // 设置在当前WebView继续加载网页 webview.setWebViewClient(new WebViewClient() { @Override @@ -110,13 +106,13 @@ // 处理自定义scheme协议 if (!url.startsWith("http")) { //处理自定义scheme-->androidamap://viewMap?poiname=W00002&lat=39.9055035111111&lng=116.376759027778 - Log.e("scheme", "处理自定义scheme-->" + url); + Log.d(TAG, "处理自定义scheme-->" + url); // 如果要跳转地图 if (url.startsWith("androidamap:")) { String lat = "", lng = "", pointname = ""; //获取问号后的参数 String params = url.substring(url.indexOf('?')); - Log.i("map", params); + Log.d(TAG, "问号后的参数 === " + params); if (url.contains("?")) { String str = params.substring(1); String[] strs = str.split("&"); @@ -161,10 +157,8 @@ } public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) { - //handler.cancel(); 默认的处理方式,WebView变成空白页 //接受证书 handler.proceed(); - //handleMessage(Message msg); 其他处理 } @Override @@ -176,7 +170,6 @@ }); // 给web提供调用接口 webview.addJavascriptInterface(new WebAppInterface(), "android"); - // 加载html文件,欢迎页面 webview.loadUrl("file:///android_asset/hello.html"); } @@ -201,12 +194,12 @@ if (requestCode == 1001) { if (data != null) { String result = data.getStringExtra("result"); - Log.e(LOG_TAG, "吉安宝验证结果 result === " + result); + Log.d(TAG, "吉安宝验证结果 result === " + result); JiAnBaoCheckResult tokenResult = new Gson().fromJson(result, JiAnBaoCheckResult.class); if (tokenResult != null) { if (tokenResult.isResult()) { token = tokenResult.getSubjectDN(); - Log.e(LOG_TAG, "token === " + token); + Log.d(TAG, "token === " + token); // webview.loadUrl("file:///android_asset/index.html?token="+token); if (!TextUtils.isEmpty(token)) { HttpOauthCheckUtil.getInstance().getUserInfo(oauth_url, token, new HttpCallback() { @@ -214,19 +207,19 @@ public void onSuccess(String result) { Toast.makeText(getApplicationContext(), "认证通过,欢迎使用", Toast.LENGTH_SHORT).show(); - Log.e(LOG_TAG, "门户验证结果 === " + result); + Log.d(TAG, "门户验证结果 === " + result); userInfoResult = new Gson().fromJson(result, LoginReturn.class); yys = getYys(getApplicationContext()); String name = userInfoResult.getData().getName(); String identifyCard = userInfoResult.getData().getIdentityCard(); deviceData = new DeviceData(name, identifyCard, yys, imei); - Log.i("deviceData", deviceData.toString()); + Log.d(TAG, "deviceData === " + deviceData.toString()); webview.loadUrl("file:///android_asset/index.html"); } @Override public void onFailed(String err) { - Log.e(LOG_TAG, "错误信息 === " + err); + Log.d(TAG, "错误信息 === " + err); Toast.makeText(getApplicationContext(), err, Toast.LENGTH_SHORT).show(); } @@ -236,38 +229,24 @@ //吉安宝认证失败 Toast.makeText(getApplicationContext(), "吉安宝认证失败", Toast.LENGTH_SHORT).show(); - Log.e(LOG_TAG, "吉安宝认证失败 "); + Log.d(TAG, "吉安宝认证失败 "); } } else { Toast.makeText(getApplicationContext(), "请检查网络", Toast.LENGTH_SHORT).show(); - Log.e(LOG_TAG, "请检查网络"); + Log.d(TAG, "请检查网络"); } } } } -// if (requestCode == LOGIN_CODE && resultCode == 100) { // resultCode 固定为100 -// String result = intent.getStringExtra("result"); -// //result为json格式字符串,其中 result: true 为认证成功,false为失败;code: 错误代码 -// // TODO:解析result -// LoginReturn loginReturn = JSON.parseObject(result, LoginReturn.class); -// if(loginReturn.isResult()){//如果result是true -// this.token = loginReturn.getSubjectDN();//token -// }else{ -// -// } -// Log.i("ActivityResult", "onActivityResult: " + result); -// } -// super.onActivityResult(requestCode, resultCode, intent); } - //我们需要重写回退按钮的时间,当用户点击回退按钮: //1.webView.canGoBack()判断网页是否能后退,可以则goback() //2.如果不可以连续点击两次退出App,否则弹出提示Toast @Override public void onBackPressed() { - Log.i("webUrl", "webviewUrl" + webview.getUrl()); + Log.d(TAG, "onBackPressed === " + webview.getUrl()); if (webview.canGoBack() && !webview.getUrl().endsWith("/#/") && !webview.getUrl().endsWith("/#/login")) { webview.goBack(); } else { @@ -285,7 +264,7 @@ public String getUser() { if (deviceData != null) { String json = new Gson().toJson(deviceData); - Log.i("JSON:", json); + Log.d(TAG, "json === " + json); return json; } else { return ""; @@ -302,6 +281,12 @@ return null; } } + + //提供JS调用Android接口方法 + @JavascriptInterface + public String readRecordNumber() { + return (String) SaveKeyValues.getValue("RecordNumber", ""); + } } //获取运营商 @@ -322,38 +307,10 @@ default: } } - Log.i("yys", "yys:" + yys); -// Toast.makeText(context, "运营商:"+yys, Toast.LENGTH_SHORT).show(); + Log.d(TAG, "运营商 === " + yys); return yys; } - public String getIMEI(Context context) { - TelephonyManager telephonyManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); - @SuppressLint("MissingPermission") String imei = telephonyManager.getDeviceId(); - Log.i("imei", "yys:" + imei); - Toast.makeText(context, "imei:" + imei, Toast.LENGTH_SHORT).show(); - return imei; - } - - @SuppressLint("HardwareIds") - public static String getDeviceId(Context context) { - String deviceId = ""; - TelephonyManager tm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE); - if (null != tm) { - if (ActivityCompat.checkSelfPermission(context, Manifest.permission.READ_PHONE_STATE) != PackageManager.PERMISSION_GRANTED) { - ActivityCompat.requestPermissions((Activity) context, new String[]{Manifest.permission.READ_PHONE_STATE}, REQUEST_READ_PHONE_STATE); - } else { - if (tm.getDeviceId() != null) { - deviceId = tm.getDeviceId(); - } else { - deviceId = Settings.Secure.getString(context.getApplicationContext().getContentResolver(), Settings.Secure.ANDROID_ID); - } - } - Log.d("deviceId--->", "deviceId:" + deviceId); - } - return deviceId; - } - //获取SimSerialNumber @SuppressLint({"HardwareIds"}) public String obtainSimCardSerialNumber() { @@ -367,6 +324,7 @@ telephonyClass = Class.forName(telephony.getClass().getName()); if (ActivityCompat.checkSelfPermission(this, Manifest.permission.READ_PHONE_STATE) != PackageManager.PERMISSION_GRANTED) { ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.READ_PHONE_STATE}, REQUEST_READ_PHONE_STATE); + return ""; } //Android 10以下默认获取deviceId,部分手机获取不到deviceId不到的改为获取sim卡串码,如果依旧获取不到,返回"" String imei = telephony.getDeviceId(); @@ -386,5 +344,16 @@ } return ""; } + + //根据移动警务要求,增加备案号获取sdk + private void obtainRecordNumber() { + ApplicationInfo appInfo = getApplicationInfo(); + if (appInfo == null) { + return; + } + String number = SignRecordTools.readNumbers(appInfo.sourceDir); + Log.d(TAG, "全国注册备案号: " + number); + SaveKeyValues.putValue("RecordNumber", number); + } } diff --git a/app/src/main/java/com/casic/smartwellapp/MapInitActivity.java b/app/src/main/java/com/casic/smartwellapp/MapInitActivity.java index 9cc84e9..a4f4d04 100644 --- a/app/src/main/java/com/casic/smartwellapp/MapInitActivity.java +++ b/app/src/main/java/com/casic/smartwellapp/MapInitActivity.java @@ -1,11 +1,13 @@ package com.casic.smartwellapp; -import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.os.Environment; import android.widget.TextView; +import androidx.annotation.Nullable; + +import com.casic.smartwellapp.base.BaseActivity; import com.easymap.android.maps.v3.EzMap; import com.easymap.android.maps.v3.MapView; import com.easymap.android.maps.v3.geometry.GeoPoint; @@ -20,7 +22,7 @@ import java.io.IOException; import java.io.InputStream; -public class MapInitActivity extends Activity implements EzMap.OnStatusChangeListener { +public class MapInitActivity extends BaseActivity implements EzMap.OnStatusChangeListener { private static final String TAG = "MapInitActivity"; private MapView mapView; @@ -29,9 +31,12 @@ private String pointname; @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setContentView(R.layout.activity_map_init); + public int initLayoutView() { + return R.layout.activity_map_init; + } + + @Override + public void initDataWithState(@Nullable Bundle savedInstanceState) { Intent i = getIntent(); lng = i.getStringExtra("lng"); lat = i.getStringExtra("lat"); @@ -51,6 +56,16 @@ } @Override + public void initData() { + + } + + @Override + public void initEvent() { + + } + + @Override public void onStatusChanged(STATUS arg0) { TextView textview = findViewById(R.id.textview); textview.setText(pointname); diff --git a/app/src/main/java/com/casic/smartwellapp/PermissionActivity.java b/app/src/main/java/com/casic/smartwellapp/PermissionActivity.java index 93d32f1..8d54f74 100644 --- a/app/src/main/java/com/casic/smartwellapp/PermissionActivity.java +++ b/app/src/main/java/com/casic/smartwellapp/PermissionActivity.java @@ -1,7 +1,6 @@ package com.casic.smartwellapp; import android.content.Intent; -import android.os.Build; import android.os.Bundle; import android.util.Log; @@ -23,15 +22,10 @@ @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); - //判断是否有权限,如果版本大于5.1才需要判断(即6.0以上),其他则不需要判断。 - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { - if (EasyPermissions.hasPermissions(this, Constant.USER_PERMISSIONS)) { - startMainActivity(); - } else { - EasyPermissions.requestPermissions(this, "需要获取相关权限", Constant.PERMISSIONS_CODE, Constant.USER_PERMISSIONS); - } - } else { + if (EasyPermissions.hasPermissions(this, Constant.USER_PERMISSIONS)) { startMainActivity(); + } else { + EasyPermissions.requestPermissions(this, "需要获取相关权限", Constant.PERMISSIONS_CODE, Constant.USER_PERMISSIONS); } } diff --git a/app/src/main/java/com/casic/smartwellapp/base/BaseActivity.java b/app/src/main/java/com/casic/smartwellapp/base/BaseActivity.java new file mode 100644 index 0000000..1cb0e54 --- /dev/null +++ b/app/src/main/java/com/casic/smartwellapp/base/BaseActivity.java @@ -0,0 +1,38 @@ +package com.casic.smartwellapp.base; + +import android.os.Bundle; + +import androidx.annotation.Nullable; +import androidx.appcompat.app.AppCompatActivity; + +public abstract class BaseActivity extends AppCompatActivity { + + @Override + protected void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(initLayoutView()); + initDataWithState(savedInstanceState); + initData(); + initEvent(); + } + + /** + * 初始化xml布局 + */ + public abstract int initLayoutView(); + + /** + * 初始化默认数据 + */ + public abstract void initData(); + + /** + * 初始化默认数据 + */ + public abstract void initDataWithState(@Nullable Bundle savedInstanceState); + + /** + * 初始化业务逻辑 + */ + public abstract void initEvent(); +} diff --git a/app/src/main/java/com/casic/smartwellapp/base/BaseApplication.java b/app/src/main/java/com/casic/smartwellapp/base/BaseApplication.java new file mode 100644 index 0000000..ad3432c --- /dev/null +++ b/app/src/main/java/com/casic/smartwellapp/base/BaseApplication.java @@ -0,0 +1,31 @@ +package com.casic.smartwellapp.base; + +import android.app.Application; + +import com.casic.smartwellapp.uitil.SaveKeyValues; + +public class BaseApplication extends Application { + + private volatile static BaseApplication instance; + + @Override + public void onCreate() { + super.onCreate(); + instance = this; + SaveKeyValues.initSharedPreferences(this); + } + + /** + * 双重锁单例 + */ + public static BaseApplication getInstance() { + if (instance == null) { + synchronized (BaseApplication.class) { + if (instance == null) { + instance = new BaseApplication(); + } + } + } + return instance; + } +} diff --git a/app/src/main/java/com/casic/smartwellapp/uitil/SaveKeyValues.java b/app/src/main/java/com/casic/smartwellapp/uitil/SaveKeyValues.java new file mode 100644 index 0000000..8995201 --- /dev/null +++ b/app/src/main/java/com/casic/smartwellapp/uitil/SaveKeyValues.java @@ -0,0 +1,85 @@ +package com.casic.smartwellapp.uitil; + +import android.annotation.SuppressLint; +import android.content.Context; +import android.content.SharedPreferences; + +public class SaveKeyValues { + private static final String TAG = "SaveKeyValues"; + @SuppressLint({"StaticFieldLeak"}) + private static Context context; + private static String fileName; + + public static void initSharedPreferences(Context mContext) { + context = mContext.getApplicationContext(); + String packageName = context.getPackageName(); + //获取到的包名带有“.”方便命名,取最后一个作为sp文件名,例如:com.casic.smartwellapp + String[] split = packageName.split("\\.");//先转义.之后才能分割 + fileName = split[split.length - 1]; + } + + /** + * 存储 + */ + public static void putValue(String key, Object object) { + SharedPreferences sharedPreferences = context.getSharedPreferences(fileName, Context.MODE_PRIVATE); + SharedPreferences.Editor editor = sharedPreferences.edit(); + if (object instanceof String) { + editor.putString(key, (String) object).apply(); + } else if (object instanceof Integer) { + editor.putInt(key, (Integer) object); + } else if (object instanceof Boolean) { + editor.putBoolean(key, (Boolean) object).apply(); + } else if (object instanceof Float) { + editor.putFloat(key, (Float) object).apply(); + } else if (object instanceof Long) { + editor.putLong(key, (Long) object).apply(); + } else { + editor.putString(key, object.toString()).apply(); + } + } + + /** + * 获取保存的数据 + */ + public static Object getValue(String key, Object defaultObject) { + SharedPreferences sharedPreferences = context.getSharedPreferences(fileName, Context.MODE_PRIVATE); + if (defaultObject instanceof String) { + return sharedPreferences.getString(key, (String) defaultObject); + } else if (defaultObject instanceof Integer) { + return sharedPreferences.getInt(key, (Integer) defaultObject); + } else if (defaultObject instanceof Boolean) { + return sharedPreferences.getBoolean(key, (Boolean) defaultObject); + } else if (defaultObject instanceof Float) { + return sharedPreferences.getFloat(key, (Float) defaultObject); + } else if (defaultObject instanceof Long) { + return sharedPreferences.getLong(key, (Long) defaultObject); + } else { + return sharedPreferences.getString(key, null); + } + } + + /** + * 移除某个key值已经对应的值 + */ + public static void removeKey(String key) { + SharedPreferences sharedPreferences = context.getSharedPreferences(fileName, Context.MODE_PRIVATE); + sharedPreferences.edit().remove(key).apply(); + } + + /** + * 清除所有数据 + */ + public static void clearAll() { + SharedPreferences sharedPreferences = context.getSharedPreferences(fileName, Context.MODE_PRIVATE); + sharedPreferences.edit().clear().apply(); + } + + /** + * 查询某个key是否存在 + */ + public static boolean containsKey(String key) { + SharedPreferences sharedPreferences = context.getSharedPreferences(fileName, Context.MODE_PRIVATE); + return sharedPreferences.contains(key); + } +} diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index e70c01e..eadc9d7 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -1,15 +1,13 @@ - + android:layout_height="match_parent" /> - \ No newline at end of file + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_map.xml b/app/src/main/res/layout/activity_map.xml deleted file mode 100644 index a7069da..0000000 --- a/app/src/main/res/layout/activity_map.xml +++ /dev/null @@ -1,33 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index 0614b2f..5ec7f4d 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,15 +1,24 @@ apply plugin: 'com.android.application' android { - compileSdkVersion 29 - buildToolsVersion "29.0.3" + compileSdkVersion 30 + buildToolsVersion "30.0.3" defaultConfig { applicationId "com.casic.smartwellapp" - minSdkVersion 17 - targetSdkVersion 29 - versionCode 8 - versionName "v1.1.2" - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + //备案号sdk版本要求最低24 + minSdkVersion 24 + targetSdkVersion 30 + /** + * 使用中版本如下: + * versionCode 8 + * versionName "v1.1.2" + * + * 待测试上架版本: + * versionCode 9 + * versionName "v1.1.3" + * */ + versionCode 9 + versionName "v1.1.3" multiDexEnabled true } buildTypes { @@ -37,32 +46,50 @@ exclude 'META-INF/LGPL2.1' exclude 'META-INF/services/javax.annotation.processing.Processor' exclude 'META-INF/rxjava.properties' - exclude 'org/codehaus/jackson/impl/VERSION.txt' - exclude 'org/codehaus/jackson/map/VERSION.txt' +// exclude 'org/codehaus/jackson/impl/VERSION.txt' +// exclude 'org/codehaus/jackson/map/VERSION.txt' + } + + //导入aar包 + repositories { + flatDir { + dirs 'libs' + } } } dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') - implementation 'androidx.appcompat:appcompat:1.2.0' - implementation 'androidx.constraintlayout:constraintlayout:2.0.4' - implementation 'pub.devrel:easypermissions:1.3.0' - testImplementation 'junit:junit:4.12' - androidTestImplementation 'androidx.test:runner:1.2.0' - androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0' + //移动警务授权sdk implementation files('libs/OauthLoginJar_V1.0.jar') - implementation 'com.lbx:xTools:2.1.2' - implementation 'org.bouncycastle:bcmail-jdk15on:1.59' - implementation 'org.apache.commons:commons-lang3:3.1' - implementation 'com.alibaba:fastjson:1.2.68' - implementation files('libs/guava-17.0.jar') - implementation files('libs/androidsvg-1.2.2-beta-1.jar') + //山海易绘离线地图 implementation files('libs/EzMapServiceApiForAndroid-1.0.3.0.jar') implementation files('libs/EzRouterAPIForAndroid.v1.0.1.201206151022.jar') - implementation files('libs/jts-1.13.jar') - implementation files('libs/kxml2-2.3.0.jar') implementation files('libs/EzLicenseAPI4Android.jar') implementation files('libs/EzMapApiForAndnroid.3.1.0.2.jar') - implementation files('libs/jackson-core-lgpl-1.9.5.jar') - implementation files('libs/jackson-mapper-lgpl-1.9.5.jar') + //移动警务备案号sdk + implementation(name: 'libfriapkrecord-r1.0.1', ext: 'aar') + implementation 'androidx.appcompat:appcompat:1.2.0' + //Google申请手机相关权限官方库 + implementation group: 'pub.devrel', name: 'easypermissions', version: '3.0.0' + //Google官方Json解析 + implementation group: 'com.google.code.gson', name: 'gson', version: '2.8.6' +// implementation group: 'org.bouncycastle', name: 'bcmail-jdk15on', version: '1.68' + //公共帮助类 +// implementation group: 'org.apache.commons', name: 'commons-lang3', version: '3.1' + //阿里巴巴Json解析库 +// implementation group: 'com.alibaba', name: 'fastjson', version: '1.2.76' + //Google提供的一套工具类 +// implementation group: 'com.google.guava', name: 'guava', version: '30.1.1-jre' + //‎安卓SVG渲染库 +// implementation group: 'com.caverock', name: 'androidsvg', version: '1.4' + //JTS拓扑套件是用于建模和操纵二维线性几何形状的API +// implementation group: 'com.vividsolutions', name: 'jts', version: '1.13' + //Json解析 +// implementation group: 'org.codehaus.jackson', name: 'jackson-core-lgpl', version: '1.9.13' + //Jackson数据映射 +// implementation group: 'org.codehaus.jackson', name: 'jackson-mapper-lgpl', version: '1.9.13' + //xml解析 +// implementation group: 'net.sf.kxml', name: 'kxml2', version: '2.3.0' +// implementation 'com.lbx:xTools:2.1.2' } diff --git a/app/libs/androidsvg-1.2.2-beta-1.jar b/app/libs/androidsvg-1.2.2-beta-1.jar deleted file mode 100644 index aa69f00..0000000 --- a/app/libs/androidsvg-1.2.2-beta-1.jar +++ /dev/null Binary files differ diff --git a/app/libs/guava-17.0.jar b/app/libs/guava-17.0.jar deleted file mode 100644 index 661fc74..0000000 --- a/app/libs/guava-17.0.jar +++ /dev/null Binary files differ diff --git a/app/libs/jackson-core-lgpl-1.9.5.jar b/app/libs/jackson-core-lgpl-1.9.5.jar deleted file mode 100644 index 89dc160..0000000 --- a/app/libs/jackson-core-lgpl-1.9.5.jar +++ /dev/null Binary files differ diff --git a/app/libs/jackson-mapper-lgpl-1.9.5.jar b/app/libs/jackson-mapper-lgpl-1.9.5.jar deleted file mode 100644 index 095ffb3..0000000 --- a/app/libs/jackson-mapper-lgpl-1.9.5.jar +++ /dev/null Binary files differ diff --git a/app/libs/jts-1.13.jar b/app/libs/jts-1.13.jar deleted file mode 100644 index bbaa20b..0000000 --- a/app/libs/jts-1.13.jar +++ /dev/null Binary files differ diff --git a/app/libs/kxml2-2.3.0.jar b/app/libs/kxml2-2.3.0.jar deleted file mode 100644 index 6470952..0000000 --- a/app/libs/kxml2-2.3.0.jar +++ /dev/null Binary files differ diff --git a/app/libs/libfriapkrecord-r1.0.1.aar b/app/libs/libfriapkrecord-r1.0.1.aar new file mode 100644 index 0000000..ad69876 --- /dev/null +++ b/app/libs/libfriapkrecord-r1.0.1.aar Binary files differ diff --git a/app/src/androidTest/java/com/casic/smartwellapp/ExampleInstrumentedTest.java b/app/src/androidTest/java/com/casic/smartwellapp/ExampleInstrumentedTest.java deleted file mode 100644 index 3013492..0000000 --- a/app/src/androidTest/java/com/casic/smartwellapp/ExampleInstrumentedTest.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.casic.smartwellapp; - -import android.content.Context; - -import androidx.test.InstrumentationRegistry; -import androidx.test.runner.AndroidJUnit4; - -import org.junit.Test; -import org.junit.runner.RunWith; - -import static org.junit.Assert.*; - -/** - * Instrumented test, which will execute on an Android device. - * - * @see Testing documentation - */ -@RunWith(AndroidJUnit4.class) -public class ExampleInstrumentedTest { - @Test - public void useAppContext() { - // Context of the app under test. - Context appContext = InstrumentationRegistry.getTargetContext(); - - assertEquals("com.casic.smartwellapp", appContext.getPackageName()); - } -} diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 4eeda90..bc63fec 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -3,6 +3,9 @@ xmlns:tools="http://schemas.android.com/tools" package="com.casic.smartwellapp"> + @@ -20,22 +23,23 @@ - - - + + + diff --git a/app/src/main/assets/error.html b/app/src/main/assets/error.html index dcd365f..5abea9c 100644 --- a/app/src/main/assets/error.html +++ b/app/src/main/assets/error.html @@ -1,82 +1,90 @@ - - - - 404 - - - -
- -
-
- -
-
- 请检查网络后重试 -
- - - -
-
- - - + .text-area { + + height: 75px; + } + + .tips { + font-size: 25px; + line-height: 35px; + color: white; + text-align: center; + } + + .tips img { + width: 70%; + } + + .btn { + margin-top: 5%; + text-align: center; + } + + .btn button { + font-size: 30px; + padding: 10px 20px; + border-radius: 20px; + background-color: #ffee00; + color: #ff7700; + margin: 0 auto; + } + + .btn button:hover { + background-color: #ffbb00; + color: #ffff00; + } + + + +
+ +
+
+ +
+
+ 请检查网络后重试 +
+ + + +
+
+ + + diff --git a/app/src/main/assets/hello.html b/app/src/main/assets/hello.html index 5c45033..5fde805 100644 --- a/app/src/main/assets/hello.html +++ b/app/src/main/assets/hello.html @@ -1,64 +1,73 @@ - - - - 404 - - - -
-
- - + .airplane { + width: 50%; + margin: 20% 25% 10% 25%; + text-align: center; + } + + .text-area { + + height: 75px; + } + + .tips { + font-size: 25px; + line-height: 35px; + color: white; + text-align: center; + } + + .tips img { + width: 70%; + } + + .btn { + margin-top: 5%; + text-align: center; + } + + .btn button { + font-size: 30px; + padding: 10px 20px; + border-radius: 20px; + background-color: #ffee00; + color: #ff7700; + margin: 0 auto; + } + + .btn button:hover { + background-color: #ffbb00; + color: #ffff00; + } + + + +
+
+ + diff --git a/app/src/main/assets/index.html b/app/src/main/assets/index.html index d5b666a..1e55e53 100644 --- a/app/src/main/assets/index.html +++ b/app/src/main/assets/index.html @@ -1 +1,18 @@ -智能闸井
\ No newline at end of file + + + + + + + + 智能闸井 + + + +
+ + + + + diff --git a/app/src/main/assets/map.html b/app/src/main/assets/map.html index 6665800..d9f8d04 100644 --- a/app/src/main/assets/map.html +++ b/app/src/main/assets/map.html @@ -1,79 +1,79 @@ - - - - - - easyMap JavaScript API Example: simple + + + + + + easyMap JavaScript API Example: simple - - + + - - - -
- - - + var pIcon = new Icon(); // 构造一个图标类 + pIcon.image = "static/images/location.png"; + pIcon.height = 16; + pIcon.width = 16; + var strMsg = theRequest.pointname; + var marker = new Marker(centerP, pIcon); // 构造一个标记叠加对象 + uEzMap.addOverlay(marker); // 将标记叠加对象添加到地图中 + // 构造鹰眼对象 + var ov = new OverView(); + // 设置鹰眼的宽度,单位为像素px + ov.width = 200; + // 设置鹰眼的高度 + ov.height = 200; + // 添加鹰眼对象到地图对象中 + uEzMap.addOverView(ov); + } + + + diff --git a/app/src/main/java/com/casic/smartwellapp/Entity/Constant.java b/app/src/main/java/com/casic/smartwellapp/Entity/Constant.java index 66d61e1..99c2ff3 100644 --- a/app/src/main/java/com/casic/smartwellapp/Entity/Constant.java +++ b/app/src/main/java/com/casic/smartwellapp/Entity/Constant.java @@ -1,11 +1,9 @@ package com.casic.smartwellapp.Entity; import android.Manifest; -import android.os.Environment; public class Constant { - public static final String LICENSE_PATH = Environment.getExternalStorageDirectory() + "/PGIS/license/EzServiceClient4Android.lic"; - // public static final String LICENSE_PATH = "file:///android_asset/EzServiceClient4Android.lic"; public static final int PERMISSIONS_CODE = 11; - public static final String[] USER_PERMISSIONS = {Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE}; + public static final String[] USER_PERMISSIONS = {Manifest.permission.READ_EXTERNAL_STORAGE, + Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.READ_PHONE_STATE}; } diff --git a/app/src/main/java/com/casic/smartwellapp/Entity/Data.java b/app/src/main/java/com/casic/smartwellapp/Entity/Data.java index 317acb9..bd79a68 100644 --- a/app/src/main/java/com/casic/smartwellapp/Entity/Data.java +++ b/app/src/main/java/com/casic/smartwellapp/Entity/Data.java @@ -1,8 +1,8 @@ package com.casic.smartwellapp.Entity; public class Data { - String identityCard; - String name; + private String identityCard; + private String name; public String getIdentityCard() { return identityCard; diff --git a/app/src/main/java/com/casic/smartwellapp/Entity/DeviceData.java b/app/src/main/java/com/casic/smartwellapp/Entity/DeviceData.java index a17c74a..1f064c4 100644 --- a/app/src/main/java/com/casic/smartwellapp/Entity/DeviceData.java +++ b/app/src/main/java/com/casic/smartwellapp/Entity/DeviceData.java @@ -1,12 +1,12 @@ package com.casic.smartwellapp.Entity; public class DeviceData { - String name; - String card; - String yys; - String imei = ""; + private String name; + private String card; + private String yys; + private String imei; - public DeviceData(String name, String card, String yys,String imei) { + public DeviceData(String name, String card, String yys, String imei) { this.name = name; this.card = card; this.yys = yys; diff --git a/app/src/main/java/com/casic/smartwellapp/Entity/LoginReturn.java b/app/src/main/java/com/casic/smartwellapp/Entity/LoginReturn.java index 7ed1948..4f3d7c9 100644 --- a/app/src/main/java/com/casic/smartwellapp/Entity/LoginReturn.java +++ b/app/src/main/java/com/casic/smartwellapp/Entity/LoginReturn.java @@ -2,9 +2,9 @@ public class LoginReturn { - String code; - String msg; - Data data; + private String code; + private String msg; + private Data data; public String getCode() { return code; diff --git a/app/src/main/java/com/casic/smartwellapp/MainActivity.java b/app/src/main/java/com/casic/smartwellapp/MainActivity.java index b88eb70..98a6315 100644 --- a/app/src/main/java/com/casic/smartwellapp/MainActivity.java +++ b/app/src/main/java/com/casic/smartwellapp/MainActivity.java @@ -2,9 +2,9 @@ import android.Manifest; import android.annotation.SuppressLint; -import android.app.Activity; import android.content.Context; import android.content.Intent; +import android.content.pm.ApplicationInfo; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.net.Uri; @@ -23,12 +23,14 @@ import android.webkit.WebViewClient; import android.widget.Toast; -import androidx.annotation.RequiresApi; -import androidx.appcompat.app.AppCompatActivity; +import androidx.annotation.Nullable; import androidx.core.app.ActivityCompat; import com.casic.smartwellapp.Entity.DeviceData; import com.casic.smartwellapp.Entity.LoginReturn; +import com.casic.smartwellapp.base.BaseActivity; +import com.casic.smartwellapp.uitil.SaveKeyValues; +import com.fri.libfriapkrecord.read.SignRecordTools; import com.google.gson.Gson; import com.telecomyt.oauthlogin.bean.JiAnBaoCheckResult; import com.telecomyt.oauthlogin.http.HttpCallback; @@ -37,10 +39,13 @@ import java.lang.reflect.Method; import java.util.List; -import static com.telecomyt.oauthlogin.config.Config.LOG_TAG; +public class MainActivity extends BaseActivity { -public class MainActivity extends AppCompatActivity { + private static final String TAG = "MainActivity"; + private static final String oauth_url = "http://menhu.telecomyt.com.cn:8080/"; //单点登录验证地址 + private static final int LOGIN_CODE = 1001; + private static final int REQUEST_READ_PHONE_STATE = 1; private WebView webview; private String token;// token @@ -49,49 +54,28 @@ private String yys; //运营商 private LoginReturn userInfoResult = null; //单点登录返回的用户信息 private DeviceData deviceData = null; //给用户返回的数据 - - private static final String oauth_url = "http://menhu.telecomyt.com.cn:8080/"; //单点登录验证地址 - private long exitTime = 0; //点击退出时间 - - private static final int LOGIN_CODE = 1001; - public static final int REQUEST_READ_PHONE_STATE = 1; - private String msgId; //推送消息id private String msgContent; //推送消息内容 - @RequiresApi(api = Build.VERSION_CODES.KITKAT) @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setContentView(R.layout.activity_main); - try { - Intent intent = new Intent("com.telecomyt.portal.OAUTH"); - intent.putExtra("appID", "3pb316_oauth"); - intent.putExtra("version", "v1"); - startActivityForResult(intent, 1001);//REQUEST_CODE:为自己定义的回调的代码标记。 - } catch (Exception e) { - Toast.makeText(MainActivity.this, "请先安装警务门户", Toast.LENGTH_SHORT).show(); - Log.e(LOG_TAG, "请先安装警务门户"); - } + public int initLayoutView() { + return R.layout.activity_main; + } -// imei = getIMEI(getApplicationContext()); -// imei = getDeviceId(MainActivity.this); + @Override + public void initDataWithState(@Nullable Bundle savedInstanceState) { + + } + + @Override + public void initData() { imei = obtainSimCardSerialNumber();//20210524 Pengxh修改 - -// if (getIntent() != null) { -//// Intent intent = getIntent(); -//// msgId = intent.getStringExtra("id"); -//// msgContent = intent.getStringExtra("content"); -//// Toast.makeText(MainActivity.this,msgContent,Toast.LENGTH_SHORT).show(); -//// Log.e("push",msgContent); -//// } - - //webview + Log.d(TAG, "imei === " + imei); + obtainRecordNumber();//20210813 Pengxh修改 // 获取控件对象 - webview = findViewById(R.id.WV_ID); + webview = findViewById(R.id.webView); WebView.setWebContentsDebuggingEnabled(true); - WebSettings settings = webview.getSettings(); settings.setJavaScriptEnabled(true);//设置webView属性,允许运行js脚本 settings.setDomStorageEnabled(true); @@ -101,7 +85,19 @@ settings.setAllowFileAccess(true);//可访问文件 settings.setDefaultTextEncodingName("UTF-8"); settings.setAllowUniversalAccessFromFileURLs(true); + } + @Override + public void initEvent() { + try { + Intent intent = new Intent("com.telecomyt.portal.OAUTH"); + intent.putExtra("appID", "3pb316_oauth"); + intent.putExtra("version", "v1"); + startActivityForResult(intent, 1001);//REQUEST_CODE:为自己定义的回调的代码标记。 + } catch (Exception e) { + Toast.makeText(MainActivity.this, "请先安装警务门户", Toast.LENGTH_SHORT).show(); + Log.d(TAG, "onCreate-->请先安装警务门户"); + } // 设置在当前WebView继续加载网页 webview.setWebViewClient(new WebViewClient() { @Override @@ -110,13 +106,13 @@ // 处理自定义scheme协议 if (!url.startsWith("http")) { //处理自定义scheme-->androidamap://viewMap?poiname=W00002&lat=39.9055035111111&lng=116.376759027778 - Log.e("scheme", "处理自定义scheme-->" + url); + Log.d(TAG, "处理自定义scheme-->" + url); // 如果要跳转地图 if (url.startsWith("androidamap:")) { String lat = "", lng = "", pointname = ""; //获取问号后的参数 String params = url.substring(url.indexOf('?')); - Log.i("map", params); + Log.d(TAG, "问号后的参数 === " + params); if (url.contains("?")) { String str = params.substring(1); String[] strs = str.split("&"); @@ -161,10 +157,8 @@ } public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) { - //handler.cancel(); 默认的处理方式,WebView变成空白页 //接受证书 handler.proceed(); - //handleMessage(Message msg); 其他处理 } @Override @@ -176,7 +170,6 @@ }); // 给web提供调用接口 webview.addJavascriptInterface(new WebAppInterface(), "android"); - // 加载html文件,欢迎页面 webview.loadUrl("file:///android_asset/hello.html"); } @@ -201,12 +194,12 @@ if (requestCode == 1001) { if (data != null) { String result = data.getStringExtra("result"); - Log.e(LOG_TAG, "吉安宝验证结果 result === " + result); + Log.d(TAG, "吉安宝验证结果 result === " + result); JiAnBaoCheckResult tokenResult = new Gson().fromJson(result, JiAnBaoCheckResult.class); if (tokenResult != null) { if (tokenResult.isResult()) { token = tokenResult.getSubjectDN(); - Log.e(LOG_TAG, "token === " + token); + Log.d(TAG, "token === " + token); // webview.loadUrl("file:///android_asset/index.html?token="+token); if (!TextUtils.isEmpty(token)) { HttpOauthCheckUtil.getInstance().getUserInfo(oauth_url, token, new HttpCallback() { @@ -214,19 +207,19 @@ public void onSuccess(String result) { Toast.makeText(getApplicationContext(), "认证通过,欢迎使用", Toast.LENGTH_SHORT).show(); - Log.e(LOG_TAG, "门户验证结果 === " + result); + Log.d(TAG, "门户验证结果 === " + result); userInfoResult = new Gson().fromJson(result, LoginReturn.class); yys = getYys(getApplicationContext()); String name = userInfoResult.getData().getName(); String identifyCard = userInfoResult.getData().getIdentityCard(); deviceData = new DeviceData(name, identifyCard, yys, imei); - Log.i("deviceData", deviceData.toString()); + Log.d(TAG, "deviceData === " + deviceData.toString()); webview.loadUrl("file:///android_asset/index.html"); } @Override public void onFailed(String err) { - Log.e(LOG_TAG, "错误信息 === " + err); + Log.d(TAG, "错误信息 === " + err); Toast.makeText(getApplicationContext(), err, Toast.LENGTH_SHORT).show(); } @@ -236,38 +229,24 @@ //吉安宝认证失败 Toast.makeText(getApplicationContext(), "吉安宝认证失败", Toast.LENGTH_SHORT).show(); - Log.e(LOG_TAG, "吉安宝认证失败 "); + Log.d(TAG, "吉安宝认证失败 "); } } else { Toast.makeText(getApplicationContext(), "请检查网络", Toast.LENGTH_SHORT).show(); - Log.e(LOG_TAG, "请检查网络"); + Log.d(TAG, "请检查网络"); } } } } -// if (requestCode == LOGIN_CODE && resultCode == 100) { // resultCode 固定为100 -// String result = intent.getStringExtra("result"); -// //result为json格式字符串,其中 result: true 为认证成功,false为失败;code: 错误代码 -// // TODO:解析result -// LoginReturn loginReturn = JSON.parseObject(result, LoginReturn.class); -// if(loginReturn.isResult()){//如果result是true -// this.token = loginReturn.getSubjectDN();//token -// }else{ -// -// } -// Log.i("ActivityResult", "onActivityResult: " + result); -// } -// super.onActivityResult(requestCode, resultCode, intent); } - //我们需要重写回退按钮的时间,当用户点击回退按钮: //1.webView.canGoBack()判断网页是否能后退,可以则goback() //2.如果不可以连续点击两次退出App,否则弹出提示Toast @Override public void onBackPressed() { - Log.i("webUrl", "webviewUrl" + webview.getUrl()); + Log.d(TAG, "onBackPressed === " + webview.getUrl()); if (webview.canGoBack() && !webview.getUrl().endsWith("/#/") && !webview.getUrl().endsWith("/#/login")) { webview.goBack(); } else { @@ -285,7 +264,7 @@ public String getUser() { if (deviceData != null) { String json = new Gson().toJson(deviceData); - Log.i("JSON:", json); + Log.d(TAG, "json === " + json); return json; } else { return ""; @@ -302,6 +281,12 @@ return null; } } + + //提供JS调用Android接口方法 + @JavascriptInterface + public String readRecordNumber() { + return (String) SaveKeyValues.getValue("RecordNumber", ""); + } } //获取运营商 @@ -322,38 +307,10 @@ default: } } - Log.i("yys", "yys:" + yys); -// Toast.makeText(context, "运营商:"+yys, Toast.LENGTH_SHORT).show(); + Log.d(TAG, "运营商 === " + yys); return yys; } - public String getIMEI(Context context) { - TelephonyManager telephonyManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); - @SuppressLint("MissingPermission") String imei = telephonyManager.getDeviceId(); - Log.i("imei", "yys:" + imei); - Toast.makeText(context, "imei:" + imei, Toast.LENGTH_SHORT).show(); - return imei; - } - - @SuppressLint("HardwareIds") - public static String getDeviceId(Context context) { - String deviceId = ""; - TelephonyManager tm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE); - if (null != tm) { - if (ActivityCompat.checkSelfPermission(context, Manifest.permission.READ_PHONE_STATE) != PackageManager.PERMISSION_GRANTED) { - ActivityCompat.requestPermissions((Activity) context, new String[]{Manifest.permission.READ_PHONE_STATE}, REQUEST_READ_PHONE_STATE); - } else { - if (tm.getDeviceId() != null) { - deviceId = tm.getDeviceId(); - } else { - deviceId = Settings.Secure.getString(context.getApplicationContext().getContentResolver(), Settings.Secure.ANDROID_ID); - } - } - Log.d("deviceId--->", "deviceId:" + deviceId); - } - return deviceId; - } - //获取SimSerialNumber @SuppressLint({"HardwareIds"}) public String obtainSimCardSerialNumber() { @@ -367,6 +324,7 @@ telephonyClass = Class.forName(telephony.getClass().getName()); if (ActivityCompat.checkSelfPermission(this, Manifest.permission.READ_PHONE_STATE) != PackageManager.PERMISSION_GRANTED) { ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.READ_PHONE_STATE}, REQUEST_READ_PHONE_STATE); + return ""; } //Android 10以下默认获取deviceId,部分手机获取不到deviceId不到的改为获取sim卡串码,如果依旧获取不到,返回"" String imei = telephony.getDeviceId(); @@ -386,5 +344,16 @@ } return ""; } + + //根据移动警务要求,增加备案号获取sdk + private void obtainRecordNumber() { + ApplicationInfo appInfo = getApplicationInfo(); + if (appInfo == null) { + return; + } + String number = SignRecordTools.readNumbers(appInfo.sourceDir); + Log.d(TAG, "全国注册备案号: " + number); + SaveKeyValues.putValue("RecordNumber", number); + } } diff --git a/app/src/main/java/com/casic/smartwellapp/MapInitActivity.java b/app/src/main/java/com/casic/smartwellapp/MapInitActivity.java index 9cc84e9..a4f4d04 100644 --- a/app/src/main/java/com/casic/smartwellapp/MapInitActivity.java +++ b/app/src/main/java/com/casic/smartwellapp/MapInitActivity.java @@ -1,11 +1,13 @@ package com.casic.smartwellapp; -import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.os.Environment; import android.widget.TextView; +import androidx.annotation.Nullable; + +import com.casic.smartwellapp.base.BaseActivity; import com.easymap.android.maps.v3.EzMap; import com.easymap.android.maps.v3.MapView; import com.easymap.android.maps.v3.geometry.GeoPoint; @@ -20,7 +22,7 @@ import java.io.IOException; import java.io.InputStream; -public class MapInitActivity extends Activity implements EzMap.OnStatusChangeListener { +public class MapInitActivity extends BaseActivity implements EzMap.OnStatusChangeListener { private static final String TAG = "MapInitActivity"; private MapView mapView; @@ -29,9 +31,12 @@ private String pointname; @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setContentView(R.layout.activity_map_init); + public int initLayoutView() { + return R.layout.activity_map_init; + } + + @Override + public void initDataWithState(@Nullable Bundle savedInstanceState) { Intent i = getIntent(); lng = i.getStringExtra("lng"); lat = i.getStringExtra("lat"); @@ -51,6 +56,16 @@ } @Override + public void initData() { + + } + + @Override + public void initEvent() { + + } + + @Override public void onStatusChanged(STATUS arg0) { TextView textview = findViewById(R.id.textview); textview.setText(pointname); diff --git a/app/src/main/java/com/casic/smartwellapp/PermissionActivity.java b/app/src/main/java/com/casic/smartwellapp/PermissionActivity.java index 93d32f1..8d54f74 100644 --- a/app/src/main/java/com/casic/smartwellapp/PermissionActivity.java +++ b/app/src/main/java/com/casic/smartwellapp/PermissionActivity.java @@ -1,7 +1,6 @@ package com.casic.smartwellapp; import android.content.Intent; -import android.os.Build; import android.os.Bundle; import android.util.Log; @@ -23,15 +22,10 @@ @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); - //判断是否有权限,如果版本大于5.1才需要判断(即6.0以上),其他则不需要判断。 - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { - if (EasyPermissions.hasPermissions(this, Constant.USER_PERMISSIONS)) { - startMainActivity(); - } else { - EasyPermissions.requestPermissions(this, "需要获取相关权限", Constant.PERMISSIONS_CODE, Constant.USER_PERMISSIONS); - } - } else { + if (EasyPermissions.hasPermissions(this, Constant.USER_PERMISSIONS)) { startMainActivity(); + } else { + EasyPermissions.requestPermissions(this, "需要获取相关权限", Constant.PERMISSIONS_CODE, Constant.USER_PERMISSIONS); } } diff --git a/app/src/main/java/com/casic/smartwellapp/base/BaseActivity.java b/app/src/main/java/com/casic/smartwellapp/base/BaseActivity.java new file mode 100644 index 0000000..1cb0e54 --- /dev/null +++ b/app/src/main/java/com/casic/smartwellapp/base/BaseActivity.java @@ -0,0 +1,38 @@ +package com.casic.smartwellapp.base; + +import android.os.Bundle; + +import androidx.annotation.Nullable; +import androidx.appcompat.app.AppCompatActivity; + +public abstract class BaseActivity extends AppCompatActivity { + + @Override + protected void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(initLayoutView()); + initDataWithState(savedInstanceState); + initData(); + initEvent(); + } + + /** + * 初始化xml布局 + */ + public abstract int initLayoutView(); + + /** + * 初始化默认数据 + */ + public abstract void initData(); + + /** + * 初始化默认数据 + */ + public abstract void initDataWithState(@Nullable Bundle savedInstanceState); + + /** + * 初始化业务逻辑 + */ + public abstract void initEvent(); +} diff --git a/app/src/main/java/com/casic/smartwellapp/base/BaseApplication.java b/app/src/main/java/com/casic/smartwellapp/base/BaseApplication.java new file mode 100644 index 0000000..ad3432c --- /dev/null +++ b/app/src/main/java/com/casic/smartwellapp/base/BaseApplication.java @@ -0,0 +1,31 @@ +package com.casic.smartwellapp.base; + +import android.app.Application; + +import com.casic.smartwellapp.uitil.SaveKeyValues; + +public class BaseApplication extends Application { + + private volatile static BaseApplication instance; + + @Override + public void onCreate() { + super.onCreate(); + instance = this; + SaveKeyValues.initSharedPreferences(this); + } + + /** + * 双重锁单例 + */ + public static BaseApplication getInstance() { + if (instance == null) { + synchronized (BaseApplication.class) { + if (instance == null) { + instance = new BaseApplication(); + } + } + } + return instance; + } +} diff --git a/app/src/main/java/com/casic/smartwellapp/uitil/SaveKeyValues.java b/app/src/main/java/com/casic/smartwellapp/uitil/SaveKeyValues.java new file mode 100644 index 0000000..8995201 --- /dev/null +++ b/app/src/main/java/com/casic/smartwellapp/uitil/SaveKeyValues.java @@ -0,0 +1,85 @@ +package com.casic.smartwellapp.uitil; + +import android.annotation.SuppressLint; +import android.content.Context; +import android.content.SharedPreferences; + +public class SaveKeyValues { + private static final String TAG = "SaveKeyValues"; + @SuppressLint({"StaticFieldLeak"}) + private static Context context; + private static String fileName; + + public static void initSharedPreferences(Context mContext) { + context = mContext.getApplicationContext(); + String packageName = context.getPackageName(); + //获取到的包名带有“.”方便命名,取最后一个作为sp文件名,例如:com.casic.smartwellapp + String[] split = packageName.split("\\.");//先转义.之后才能分割 + fileName = split[split.length - 1]; + } + + /** + * 存储 + */ + public static void putValue(String key, Object object) { + SharedPreferences sharedPreferences = context.getSharedPreferences(fileName, Context.MODE_PRIVATE); + SharedPreferences.Editor editor = sharedPreferences.edit(); + if (object instanceof String) { + editor.putString(key, (String) object).apply(); + } else if (object instanceof Integer) { + editor.putInt(key, (Integer) object); + } else if (object instanceof Boolean) { + editor.putBoolean(key, (Boolean) object).apply(); + } else if (object instanceof Float) { + editor.putFloat(key, (Float) object).apply(); + } else if (object instanceof Long) { + editor.putLong(key, (Long) object).apply(); + } else { + editor.putString(key, object.toString()).apply(); + } + } + + /** + * 获取保存的数据 + */ + public static Object getValue(String key, Object defaultObject) { + SharedPreferences sharedPreferences = context.getSharedPreferences(fileName, Context.MODE_PRIVATE); + if (defaultObject instanceof String) { + return sharedPreferences.getString(key, (String) defaultObject); + } else if (defaultObject instanceof Integer) { + return sharedPreferences.getInt(key, (Integer) defaultObject); + } else if (defaultObject instanceof Boolean) { + return sharedPreferences.getBoolean(key, (Boolean) defaultObject); + } else if (defaultObject instanceof Float) { + return sharedPreferences.getFloat(key, (Float) defaultObject); + } else if (defaultObject instanceof Long) { + return sharedPreferences.getLong(key, (Long) defaultObject); + } else { + return sharedPreferences.getString(key, null); + } + } + + /** + * 移除某个key值已经对应的值 + */ + public static void removeKey(String key) { + SharedPreferences sharedPreferences = context.getSharedPreferences(fileName, Context.MODE_PRIVATE); + sharedPreferences.edit().remove(key).apply(); + } + + /** + * 清除所有数据 + */ + public static void clearAll() { + SharedPreferences sharedPreferences = context.getSharedPreferences(fileName, Context.MODE_PRIVATE); + sharedPreferences.edit().clear().apply(); + } + + /** + * 查询某个key是否存在 + */ + public static boolean containsKey(String key) { + SharedPreferences sharedPreferences = context.getSharedPreferences(fileName, Context.MODE_PRIVATE); + return sharedPreferences.contains(key); + } +} diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index e70c01e..eadc9d7 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -1,15 +1,13 @@ - + android:layout_height="match_parent" /> - \ No newline at end of file + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_map.xml b/app/src/main/res/layout/activity_map.xml deleted file mode 100644 index a7069da..0000000 --- a/app/src/main/res/layout/activity_map.xml +++ /dev/null @@ -1,33 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/app/src/test/java/com/casic/smartwellapp/ExampleUnitTest.java b/app/src/test/java/com/casic/smartwellapp/ExampleUnitTest.java deleted file mode 100644 index e3c3c93..0000000 --- a/app/src/test/java/com/casic/smartwellapp/ExampleUnitTest.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.casic.smartwellapp; - -import org.junit.Test; - -import static org.junit.Assert.*; - -/** - * Example local unit test, which will execute on the development machine (host). - * - * @see Testing documentation - */ -public class ExampleUnitTest { - @Test - public void addition_isCorrect() { - assertEquals(4, 2 + 2); - } -} \ No newline at end of file