Android 9.0之后获取无法通过反射获取系统属性,如果我们需要知道手机某个属性,可以通过以下的方式.注意:这种方式不能获取所有的属性.不然谷歌限制SystemProper的访问就没有意义了.

package com.tinno.android.appinfocollector.tools;import android.text.TextUtils;
import android.util.Log;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashMap;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class SystemPropertiesUtils {private static final String TAG = "MainActivity";private static HashMap<String, String> keyValMap;private static void loadSystemProperties() {if (keyValMap == null) {keyValMap = new HashMap<>(30);}try {Process p = Runtime.getRuntime().exec("getprop");p.waitFor();BufferedReader stdInput = new BufferedReader(new InputStreamReader(p.getInputStream()));String temp = "";int keyStart, keyStop, valStart, valStop;String key, val;while ((temp = stdInput.readLine()) != null) {//[sys.ylog.svc.ftrace]: [stopped]if (!TextUtils.isEmpty(temp)) {keyStart = temp.indexOf("[") + 1;keyStop = temp.indexOf("]");valStart = temp.lastIndexOf("[") + 1;valStop = temp.lastIndexOf("]");key = temp.substring(keyStart, keyStop);val = temp.substring(valStart, valStop);keyValMap.put(key, val);Log.d("HHH", "key=" + key + " val=" + val);}}} catch (InterruptedException e) {} catch (IOException e) {}}public static String get(String key, String def) {if (keyValMap == null) {loadSystemProperties();}String ret = keyValMap.get(key);return ret == null ? def : ret;}public static int getInt(String key, int def) {if (keyValMap == null) {loadSystemProperties();}String ret = keyValMap.get(key);if (isNumeric(ret)) {return Integer.valueOf(ret);} else {return def;}}public static boolean isNumeric(String str) {Pattern pattern = Pattern.compile("[0-9]*");Matcher isNum = pattern.matcher(str);if (!isNum.matches()) {return false;}return true;}public static boolean getBoolean(String key, boolean def) {if (keyValMap == null) {loadSystemProperties();}String ret = keyValMap.get(key);return ret.equals("true");}
}

Android 9无法通过反射获取系统属性相关推荐

  1. Android第三方app获取系统属性

    原博客地址(建议去原博客地址看): https://blog.csdn.net/shadowliucs/article/details/38658155 在一个Android应用中因为要获取系统的属性 ...

  2. 【Android 安全】DEX 加密 ( 代理 Application 开发 | 加载 dex 文件 | 反射获取系统的 Element[] dexElements )

    文章目录 一.dex 文件准备 二.加载 dex 文件流程 三.Element[] dexElements 分析 四.反射获取系统的 Element[] dexElements 参考博客 : [And ...

  3. java获取系统属性_Java获取系统属性

    1.System类 The System class contains several useful class fields and methods. It cannot be instantiat ...

  4. 在Java中获取系统属性

    Java语言以其面向对象.跨平台.可移植性好.安全性高等优点,受到众多编程人员的青睐,越来越多的人将其作为应用软件开发语言的首选. 在Java应用程序运行时,特别是需要在跨平台工作环境下运行时,需要确 ...

  5. android获取ro._Android应用获取系统属性

    使用adb shell prop可以查看Android系统的属性.详情看下图 上面列出了很多属性, 如果要在使用中使用该属性, 比如说我是为了判断该手机是不是魅族手机. google在framewor ...

  6. Android adb 设置和获取系统属性

    /system/build.prop 为系统属性默认值. 安卓系统属性由特殊的property_service管理, /system/build.prop是只读文件, 其中包含property_ser ...

  7. Android开发之通过反射获取全局的application

    直接上代码 方法一: package cn.xiayiye5.xiayiye5library.utils;import android.annotation.SuppressLint; import ...

  8. 如何在Java中获取系统属性?

    The System class in Java maintains a set of properties. These properties are stored in the form of k ...

  9. C# 使用反射获取私有属性的方法

    本文告诉大家多个不同的方法使用反射获得私有属性,最后通过测试性能发现所有的方法的性能都差不多 在开始之前先添加一个测试的类 public class Foo{private string F { se ...

最新文章

  1. redisCommand接口的用法--利用hiredis库获取MGET命令的结果的坑!
  2. 域名买了,DNS解析怎么选?一键按需定制解析服务不是梦!
  3. mysql page header_MySQL系列:innodb源码分析之page结构解析
  4. golang init函数:全局变量优先于 > init函数 > main函数
  5. JEPaas功能_isEmpty(b.getValue())?“doSave“:“doUpdate“;
  6. Nginx----高级
  7. sap委外采购订单冲销 102_SAP那些事-实战篇-68-谈谈SAP的库存设计理念
  8. Android Sqite数据库 11
  9. 幻方c语言程序,幻方算法 C语言描述
  10. gis怎么提取水系_如何使用ArcGIS从天地图中提取水系
  11. 用VBA制作Excel单选框和多选框
  12. Windows安装Protoc
  13. Win10科大讯飞语音合成系统( Interphonic 5.0)安装方法及报错解决
  14. 科技创新就要高浓度、高密度
  15. 转 android8.0通知栏适配
  16. YOLO3-WIN10-GPU版配置详细教程
  17. 同居mm_倾向于同居
  18. Process Hacker 简单介绍
  19. 机器学习各种算法以及开发具体流程+API具体实例+案例的实现
  20. 对于javaScript设计模式的认知与学习

热门文章

  1. 阿里云视频点播——企业服务
  2. 通过经纬度坐标计算两点间的距离以及角度关系(C++)
  3. 计算机原理探究第一部分教案,计算机系统的组成部分教案.doc
  4. WorkNC型面和结构面编程技巧分享
  5. Dash项目评级报告:BB级,热门匿名币暂未披露项目新路线图|链塔评级
  6. 零售业数据分析的规划思路与应用场景
  7. js 递归思想 处理后台多维数组的数据 之 完美契合
  8. R语言作加权最小二乘_R语言与计量经济学(三)异方差
  9. Linux系统介绍及安装
  10. 聚宽 get_price 多个股票数据_《实证资产定价:股票横截面收益》