在camera.java中,我需要在系统中获取属性。但是,我无法导入android.os.SystemProperties,编译相机总是抱怨:
packages/apps/Camera/src/com/android/camera/Camera.java:53: cannot find symbol
symbol : class SystemProperties
location: package android.os
import android.os.SystemProperties;
在camera.java的开头,我包括:
import android.os.Message;
import android.os.MessageQueue;
import android.os.SystemClock;
import android.os.SystemProperties; /* (this is in line 53)*/
似乎SystemProperties不在android.os包中,但我检查了框架的源代码,它确实在其中。
这发生在相机应用程序中。我以这种方式使用SystemProperties在packages / app dir下找到了许多应用程序。真的很奇怪。
答案 0 :(得分:1)
SystemProperties类设置了'hide'注释 所以你想在应用层中使用这个类, 你必须使用反思。
SystemProperties类的定义如下。
package android.os;
/**
* Gives access to the system properties store. The system properties
* store contains a list of string key-value pairs.
*
* {@hide}
*/
public class SystemProperties
答案 1 :(得分:1)
我遇到了和你一样的问题,我使用下面的代码,并通过使用refelection来解决问题。希望它会有所帮助
//set SystemProperties as you want
public static 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) {
Log.d(LOGTAG, "setProperty====exception=");
e.printStackTrace();
}
}