获取系统(ROM)类别及版本号,MIUI通知栏显示标题

This commit is contained in:
pppscn 2021-02-18 11:39:17 +08:00
parent 31fc5132dd
commit d6267c06ec
8 changed files with 184 additions and 6 deletions

View File

@ -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.1](app/release/SmsForwarder_release_20210215_1.1.1.apk) 更新应用/通知栏图标
> [v1.1.0](app/release/SmsForwarder_release_20210214_1.1.0.apk) 新增在线升级、缓存清理、加入QQ群功能 > [v1.1.0](app/release/SmsForwarder_release_20210214_1.1.0.apk) 新增在线升级、缓存清理、加入QQ群功能

View File

@ -10,8 +10,8 @@ android {
applicationId "com.idormy.sms.forwarder" applicationId "com.idormy.sms.forwarder"
minSdkVersion 23 minSdkVersion 23
targetSdkVersion 28 targetSdkVersion 28
versionCode 3 versionCode 4
versionName "1.1.1" versionName "1.1.2"
testInstrumentationRunner 'androidx.test.runner.AndroidJUnitRunner' testInstrumentationRunner 'androidx.test.runner.AndroidJUnitRunner'
} }
buildTypes { buildTypes {

Binary file not shown.

View File

@ -10,9 +10,9 @@
{ {
"type": "SINGLE", "type": "SINGLE",
"filters": [], "filters": [],
"versionCode": 3, "versionCode": 4,
"versionName": "1.1.1", "versionName": "1.1.2",
"outputFile": "SmsForwarder_release_20210215_1.1.1.apk" "outputFile": "SmsForwarder_release_20210218_1.1.2.apk"
} }
] ]
} }

View File

@ -11,6 +11,8 @@ import android.util.Log;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import com.idormy.sms.forwarder.utils.OSUtils;
public class FrontService extends Service { public class FrontService extends Service {
private static final String TAG = "FrontService"; private static final String TAG = "FrontService";
@ -23,7 +25,11 @@ public class FrontService extends Service {
Log.i(TAG, "onCreate"); Log.i(TAG, "onCreate");
Notification.Builder builder = new Notification.Builder(this); Notification.Builder builder = new Notification.Builder(this);
builder.setSmallIcon(R.drawable.ic_sms_forwarder); 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等"); builder.setContentText("根据规则转发到钉钉/微信/邮箱/bark/webhook等");
Intent intent = new Intent(this, MainActivity.class); Intent intent = new Intent(this, MainActivity.class);
PendingIntent pendingIntent = PendingIntent.getActivity PendingIntent pendingIntent = PendingIntent.getActivity

View File

@ -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<Map.Entry<Object, Object>> 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();
}
}

View File

@ -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标识
* <p>
* "ro.miui.ui.version.code" -> "5"
* <p>
* "ro.miui.ui.version.name" -> "V7"
* <p>
* "ro.miui.has_handy_mode_sf" -> "1"
* <p>
* "ro.miui.has_real_blur" -> "1"
* <p>
* <p>
* <p>
* Flyme ROM标识
* <p>
* "ro.build.user" -> "flyme"
* <p>
* "persist.sys.use.flyme.icon" -> "true"
* <p>
* "ro.flyme.published" -> "true"
* <p>
* "ro.build.display.id" -> "Flyme OS 5.1.2.0U"
* <p>
* "ro.meizu.setupwizard.flyme" -> "true"
* <p>
* <p>
* <p>
* EMUI ROM标识
* <p>
* "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;
}
}

BIN
psd/ic_launcher.psd Normal file

Binary file not shown.