diff --git a/README.md b/README.md index deb91700..7a8afdf0 100644 --- a/README.md +++ b/README.md @@ -80,6 +80,8 @@ Android手机监听短信并根据指定规则转发到其他手机、钉钉机 ## 更新记录: +> [v1.1.2](app/release/SmsForwarder_release_20210218_1.1.2.apk) 获取系统(ROM)类别及版本号,MIUI通知栏显示标题 + > [v1.1.1](app/release/SmsForwarder_release_20210215_1.1.1.apk) 更新应用/通知栏图标 > [v1.1.0](app/release/SmsForwarder_release_20210214_1.1.0.apk) 新增在线升级、缓存清理、加入QQ群功能 diff --git a/app/build.gradle b/app/build.gradle index 40bd7e39..dd649759 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -10,8 +10,8 @@ android { applicationId "com.idormy.sms.forwarder" minSdkVersion 23 targetSdkVersion 28 - versionCode 3 - versionName "1.1.1" + versionCode 4 + versionName "1.1.2" testInstrumentationRunner 'androidx.test.runner.AndroidJUnitRunner' } buildTypes { diff --git a/app/release/SmsForwarder_release_20210218_1.1.2.apk b/app/release/SmsForwarder_release_20210218_1.1.2.apk new file mode 100644 index 00000000..9e53f03a Binary files /dev/null and b/app/release/SmsForwarder_release_20210218_1.1.2.apk differ diff --git a/app/release/output-metadata.json b/app/release/output-metadata.json index 44087dc6..9ba39411 100644 --- a/app/release/output-metadata.json +++ b/app/release/output-metadata.json @@ -10,9 +10,9 @@ { "type": "SINGLE", "filters": [], - "versionCode": 3, - "versionName": "1.1.1", - "outputFile": "SmsForwarder_release_20210215_1.1.1.apk" + "versionCode": 4, + "versionName": "1.1.2", + "outputFile": "SmsForwarder_release_20210218_1.1.2.apk" } ] } \ No newline at end of file diff --git a/app/src/main/java/com/idormy/sms/forwarder/FrontService.java b/app/src/main/java/com/idormy/sms/forwarder/FrontService.java index 0f5578fb..7755c8c3 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/FrontService.java +++ b/app/src/main/java/com/idormy/sms/forwarder/FrontService.java @@ -11,6 +11,8 @@ import android.util.Log; import androidx.annotation.Nullable; +import com.idormy.sms.forwarder.utils.OSUtils; + public class FrontService extends Service { private static final String TAG = "FrontService"; @@ -23,7 +25,11 @@ public class FrontService extends Service { Log.i(TAG, "onCreate"); Notification.Builder builder = new Notification.Builder(this); builder.setSmallIcon(R.drawable.ic_sms_forwarder); - //builder.setContentTitle("短信转发器"); + OSUtils.ROM_TYPE romType = OSUtils.getRomType(); + //Log.d(TAG, "onCreate: " + romType); + if (romType == OSUtils.ROM_TYPE.MIUI_ROM) { + builder.setContentTitle("短信转发器"); + } builder.setContentText("根据规则转发到钉钉/微信/邮箱/bark/webhook等"); Intent intent = new Intent(this, MainActivity.class); PendingIntent pendingIntent = PendingIntent.getActivity diff --git a/app/src/main/java/com/idormy/sms/forwarder/utils/BuildProperties.java b/app/src/main/java/com/idormy/sms/forwarder/utils/BuildProperties.java new file mode 100644 index 00000000..302dff7f --- /dev/null +++ b/app/src/main/java/com/idormy/sms/forwarder/utils/BuildProperties.java @@ -0,0 +1,68 @@ +package com.idormy.sms.forwarder.utils; + +import android.os.Environment; + +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.util.Collection; +import java.util.Enumeration; +import java.util.Map; +import java.util.Properties; +import java.util.Set; + +public class BuildProperties { + private static BuildProperties ourInstance; + + public static BuildProperties getInstance() throws IOException { + if (ourInstance == null) ourInstance = new BuildProperties(); + return ourInstance; + } + + private final Properties properties; + + private BuildProperties() throws IOException { + properties = new Properties(); + properties.load(new FileInputStream(new File(Environment.getRootDirectory(), "build.prop"))); + } + + public boolean containsKey(final Object key) { + return properties.containsKey(key); + } + + public boolean containsValue(final Object value) { + return properties.containsValue(value); + } + + public String getProperty(final String name) { + return properties.getProperty(name); + } + + public String getProperty(final String name, final String defaultValue) { + return properties.getProperty(name, defaultValue); + } + + public Set> entrySet() { + return properties.entrySet(); + } + + public boolean isEmpty() { + return properties.isEmpty(); + } + + public Enumeration keys() { + return properties.keys(); + } + + public Set keySet() { + return properties.keySet(); + } + + public int size() { + return properties.size(); + } + + public Collection values() { + return properties.values(); + } +} \ No newline at end of file diff --git a/app/src/main/java/com/idormy/sms/forwarder/utils/OSUtils.java b/app/src/main/java/com/idormy/sms/forwarder/utils/OSUtils.java new file mode 100644 index 00000000..e9c954a7 --- /dev/null +++ b/app/src/main/java/com/idormy/sms/forwarder/utils/OSUtils.java @@ -0,0 +1,102 @@ +package com.idormy.sms.forwarder.utils; + +import android.text.TextUtils; + +import java.io.IOException; + +/** + * 使用方法: + * OSUtils.ROM_TYPE romType = OSUtils.getRomType(); + * 可能您需要对其他的ROM进行区分,那么只需三步: + * 一:使用BuildProperties获取到所有的key,遍历获取到所有的value(getProperty),或者直接找到build.prop文件。 + * 二:找到定制ROM特征的标识(key/value) + * 三:增加ROM_TYPE枚举类型,getRomType方法加入识别比对即可 + * 作者:YouAreMyShine + * 链接:https://www.jianshu.com/p/bb1f765a425f + */ +public class OSUtils { + public enum ROM_TYPE { + MIUI_ROM, + FLYME_ROM, + EMUI_ROM, + OTHER_ROM + } + + /** + * MIUI ROM标识 + *

+ * "ro.miui.ui.version.code" -> "5" + *

+ * "ro.miui.ui.version.name" -> "V7" + *

+ * "ro.miui.has_handy_mode_sf" -> "1" + *

+ * "ro.miui.has_real_blur" -> "1" + *

+ *

+ *

+ * Flyme ROM标识 + *

+ * "ro.build.user" -> "flyme" + *

+ * "persist.sys.use.flyme.icon" -> "true" + *

+ * "ro.flyme.published" -> "true" + *

+ * "ro.build.display.id" -> "Flyme OS 5.1.2.0U" + *

+ * "ro.meizu.setupwizard.flyme" -> "true" + *

+ *

+ *

+ * EMUI ROM标识 + *

+ * "ro.build.version.emui" -> "EmotionUI_1.6" + */ + + //MIUI标识 + private static final String KEY_MIUI_VERSION_CODE = "ro.miui.ui.version.code"; + private static final String KEY_MIUI_VERSION_NAME = "ro.miui.ui.version.name"; + + //EMUI标识 + private static final String KEY_EMUI_VERSION_CODE = "ro.build.version.emui"; + + //Flyme标识 + private static final String KEY_FLYME_ID_FALG_KEY = "ro.build.display.id"; + private static final String KEY_FLYME_ID_FALG_VALUE_KEYWORD = "Flyme"; + private static final String KEY_FLYME_ICON_FALG = "persist.sys.use.flyme.icon"; + private static final String KEY_FLYME_SETUP_FALG = "ro.meizu.setupwizard.flyme"; + private static final String KEY_FLYME_PUBLISH_FALG = "ro.flyme.published"; + + /** + * @param + * @return ROM_TYPE ROM类型的枚举 + * @datecreate at 2016/5/11 0011 9:46 + * @mehtodgetRomType + * @description获取ROM类型,MIUI_ROM, *FLYME_ROM, * EMUI_ROM, * OTHER_ROM + */ + public static ROM_TYPE getRomType() { + ROM_TYPE rom_type = ROM_TYPE.OTHER_ROM; + try { + BuildProperties buildProperties = BuildProperties.getInstance(); + if (buildProperties.containsKey(KEY_EMUI_VERSION_CODE)) { + return ROM_TYPE.EMUI_ROM; + } + if (buildProperties.containsKey(KEY_MIUI_VERSION_CODE) || buildProperties.containsKey(KEY_MIUI_VERSION_NAME)) { + return ROM_TYPE.MIUI_ROM; + } + if (buildProperties.containsKey(KEY_FLYME_ICON_FALG) || buildProperties.containsKey(KEY_FLYME_SETUP_FALG) || buildProperties.containsKey(KEY_FLYME_PUBLISH_FALG)) { + return ROM_TYPE.FLYME_ROM; + } + if (buildProperties.containsKey(KEY_FLYME_ID_FALG_KEY)) { + String romName = buildProperties.getProperty(KEY_FLYME_ID_FALG_KEY); + if (!TextUtils.isEmpty(romName) && romName.contains(KEY_FLYME_ID_FALG_VALUE_KEYWORD)) { + return ROM_TYPE.FLYME_ROM; + } + } + } catch (IOException e) { + e.printStackTrace(); + } + return rom_type; + } +} diff --git a/psd/ic_launcher.psd b/psd/ic_launcher.psd new file mode 100644 index 00000000..28799f3e Binary files /dev/null and b/psd/ic_launcher.psd differ