我正在尝试使用
SystemProperties.get();
但是无法导入谷歌搜索的android.os.SystemProperties
包裹告诉我它隐藏了,有什么方法可以解决这个问题吗?
答案 0 :(得分:8)
SystemProperties是一个隐藏类,仅适用于平台级代码。您可以尝试通过反射访问它,但不建议这样做。
很容易将Android的SystemProperties类与旧式的Java属性方法混淆,即java.lang.System.getProperty()。请注意,这是两个完全独立的系统。一个重要的区别是Java机制只能在给定的进程中工作,而Android SystemProperties可以跨进程工作。
作为应用程序开发人员,虽然您通常不会在Android的Android SystemProperties中获得基于Java的API,但您可以使用
在命令行检查SystemProperties。adb shell getprop
答案 1 :(得分:2)
您可以导入导入android.os.Bundle; ,然后您可以使用 System.getProperty(“os.name”);
访问系统属性您可以使用System.getProperty('Property name');
访问任何属性答案 2 :(得分:0)
将'layoutlib.jar'添加到项目的Java Build Path中,然后,您可以使用“import android.os.SystemProperties;”
答案 3 :(得分:0)
如果想获得设备属性, 对于操作系统信息,您可以查看http://developer.android.com/reference/android/os/Build.html
只需要导入android.os.Build;
答案 4 :(得分:0)
一种骇人听闻的方法是在类路径上创建自己的SystemProperties
类,以便代码可以编译和运行,然后将其从构建中排除。如果该类存在于android设备上,则可以正常工作。我经常在非常特殊的情况下执行此操作,但是我不建议在商业应用程序中针对各种版本和设备执行此操作。
您可以将其基于source code类,仅保留所需的api。
示例类:
package android.os;
public class SystemProperties {
public static String get(String key) {
return "";
}
}
然后,您只需要从gradle文件中的android / sourcesets / main中排除该类,例如:
sourceSets {
main {
java {
exclude 'android/**/*.java'
}
}
}
答案 5 :(得分:0)
您可以尝试的一件事是,对
进行注释LOCAL_SDK_VERSION:=当前
在Android.mk中。通过这种方式,您可以从应用中调用隐藏的api