安卓代码获取系统属性值

  • 前言
  • 代码实现

前言

大家可能知道,使用adb shell getprop命令可以直接获取系统属性值,但有时候需要在JAVA代码中获取系统属性,接下来说一下如何实现。

代码实现

在build.gradle的android下中添加如下代码,以找到android.os.SystemProperties类:

String SDK_DIR = System.getenv("ANDROID_SDK_HOME")
if(SDK_DIR == null) {Properties props = new Properties()props.load(new FileInputStream(project.rootProject.file("local.properties")))SDK_DIR = props.get('sdk.dir')
}
dependencies {compileOnly files("${SDK_DIR}/platforms/android-21/data/layoutlib.jar")
}

完整的build.gradle示例文件如下:

apply plugin: 'com.android.application'android {compileSdkVersion 31buildToolsVersion "30.0.3"defaultConfig {applicationId "com.example.testsystemproperty"minSdkVersion 14targetSdkVersion 29versionCode 1versionName "1.0"testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"}buildTypes {release {minifyEnabled falseproguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'}}//以下是为了找到android.os.SystemProperties这个隐藏的类String SDK_DIR = System.getenv("ANDROID_SDK_HOME")if(SDK_DIR == null) {Properties props = new Properties()props.load(new FileInputStream(project.rootProject.file("local.properties")))SDK_DIR = props.get('sdk.dir')}dependencies {compileOnly files("${SDK_DIR}/platforms/android-21/data/layoutlib.jar")}
}dependencies {implementation fileTree(dir: 'libs', include: ['*.jar'])implementation 'androidx.appcompat:appcompat:1.0.2'implementation 'androidx.constraintlayout:constraintlayout:1.1.3'testImplementation 'junit:junit:4.12'androidTestImplementation 'androidx.test.ext:junit:1.1.1'androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
}

在代码中需要获取系统属性的地方调用android.os.SystemProperties类的get接口获取系统属性值,以下为示例代码:

package com.example.testsystemproperty;import androidx.appcompat.app.AppCompatActivity;import android.os.Bundle;
import android.widget.TextView;public class MainActivity extends AppCompatActivity {private static String propertyName = "ro.system.build.date"; //根据需要获取的属性名称修改private TextView textView1;private TextView textView2;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);textView1 = findViewById(R.id.tv1);textView2 = findViewById(R.id.tv2);textView1.setText("propertyName:" + propertyName);textView2.setText("propertyValue:" + android.os.SystemProperties.get(propertyName,""));}
}

最后在安卓设备运行一下查看效果:

安卓代码获取系统属性值相关推荐

  1. Java反射获取Android系统属性值

    目录 反射定义 为何需要反射 反射方法Method getDeclaredMethod方法 getMethod方法 参数解释 invoke方法 Android 反射应用 反射定义 "反射&q ...

  2. 在Java中获取系统属性

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

  3. java高效获取内部类属性值_Java高级特性:内部类

    内部类是什么 内部类是指在一个外部类的内部再定义一个类.内部类作为外部类的一个成员,并且依附于外部类而存在的.内部类可为静态,可用protected和private修饰(而外部类只能使用public和 ...

  4. php xml获取标签属性,php获取xml属性值

    php获取xml属性值 $dom = new DOMDocument(); if (!$dom->load('attr.xml')) { echo "load books.xml fa ...

  5. java通过System.getProperty获取系统属性

    getProperties  public static Properties getProperties()  确定当前的系统属性.  首先,如果有安全管理器,则不带参数直接调用其 checkPro ...

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

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

  7. 无障碍开发(五)之设置获取无障碍属性值

    设置获取无障碍属性值 为了跨浏览器兼容,总是使用WAI-ARIA属性解析来访问和修改ARIA属性,例如object.setAttribute("aria-valuenow", ne ...

  8. php 获取css值,如何通过JS获取CSS属性值

    JS获取CSS属性 #f{background-color:#FF0000;} var o = document.getElementById('f'); document.write(o.style ...

  9. java 获取对象属性值为空或者非空的属性名称

    目录 1. 获取对象属性值为空的属性名称 2. 复制对象非空属性值 1. 获取对象属性值为空的属性名称 /** * @Title: getNullPropertyNames* @Description ...

  10. Android 9无法通过反射获取系统属性

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

最新文章

  1. 2022-2028年中国数码摄像机市场投资分析及前景预测报告
  2. 最全深度学习训练过程可视化工具(附github源码)
  3. 【windows】CMake安装小结
  4. redis密码设置、访问权限控制等安全设置
  5. PHP 显示信息到控制台console
  6. hive拉链表实现方案一
  7. 链表和数组的区别在哪里?
  8. ffmpeg源码分析:transcode()函数
  9. Jquery 实现json复杂查询等操作(jsonDB)
  10. android wear iphone7,多款 Android Wear 智能手表不兼容iPhone 7
  11. 了解mysql脏页落盘过程
  12. MDCC为移动开发者服务:一看、一聊、一聚
  13. 求两点之间的夹角--两种方法
  14. Matlab渐变颜色图(colormap)生成/编辑器—ColorMap
  15. jMonkeyEngine译文 FlagRush5(2)——跟随的摄像机(ChaseCamera)
  16. python爬虫实习生面试经验分享【卖座网】
  17. 【笔记】二重积分概念与计算
  18. 演化计算(蚁群算法、粒子群算法、遗传算法、演化规则......)
  19. 解决.NET Framework 高版本不能卸载,低版本又不能安装的问题
  20. JavaScript实现击鼓传花方法

热门文章

  1. 三星Galaxy S4 刷入CWM Recovery和获取ROOT教程
  2. 车间调度问题总结笔记一
  3. SocksCap64
  4. C语言程序书写中 每行必须有分号,C语言课后习题答案
  5. 1+x云计算平台运维与开发初级
  6. MAC电脑新手入门指南
  7. 朱敏:美国往事---硅谷第一代中国大陆创业家的20年
  8. 网页设计公众号相关资源网站
  9. 不得不学的统计学基础知识(二)
  10. 软件测试简历项目经验介绍,软件测试工程师项目经验简历范文