RK:android 关于SystemProperties的使用
一.system权限
1.在AndroidManifest.xml中,在manifest加入android:sharedUserId="android.uid.system"
2.在Android.mk中,將LOCAL_CERTIFICATE := XXX修改成LOCAL_CERTIFICATE :=platform
3.import android.os.SystemProperties; import java.lang.reflect.Method;
二.SystemProperties
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | Initial_password = SystemProperties.get( "persist.passwd.install" , "888888" ); 2.1 .getInt SystemProperties.set( "persist.sys.dialog_install" , "1" ); if (SystemProperties.getInt( "persist.sys.dialog_install" , 0 ) == 1 ) { auxiliaryDialog.setChecked( true ); } else { auxiliaryDialog.setChecked( false ); } 2.2 .getBoolean SystemProperties.set( "persist.rotation.limit" , "true" ); if (SystemProperties.getBoolean( "persist.rotation.limit" , true )) { rotation_limit.setChecked( true ); } else { rotation_limit.setChecked( false ); } |
2.2.
1 2 3 4 5 6 7 | property_set( "persist.sys.audio_device" , "1" ); char pro_value[PROPERTY_VALUE_MAX] = "" ; property_get( "persist.audio.mic" ,pro_value, 0 ); ALOGD( "persist.audio.mic mic_value %d" , mic_value); |
三.非系统开发,反射调用
3.1.getProperty
1 2 3 4 5 6 7 8 9 10 11 12 13 | @SuppressWarnings ( "finally" ) public String getProperty(String key) { String value = "unknown" ; try { Class<?> c = Class.forName( "android.os.SystemProperties" ); Method get = c.getMethod( "get" , String. class , String. class ); value = (String) (get.invoke(c, key, "unknown" )); } catch (Exception e) { e.printStackTrace(); } finally { return value; } } |
3.2.setProperty
1 2 3 4 5 6 7 8 9 | public void setProperty(String key, String value) { try { Class<?> c = Class.forName( "android.os.SystemProperties" ); Method set = c.getMethod( "set" , String. class , String. class ); set.invoke(c, key, value); } catch (Exception e) { e.printStackTrace(); } } |
四.非系统开发,framework jar包调用
1 | framework编译出 out\target\common\obj\JAVA_LIBRARIES\framework_intermediates |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】