无法在Camera应用程序中导入android.os.SystemProperties

时间:2011-10-12 04:10:19

标签: android

在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下找到了许多应用程序。真的很奇怪。

2 个答案:

答案 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();
        }  
    }